javascript - Vue.js Component的method应该如何使用
迷茫
迷茫 2017-04-11 12:55:54
[JavaScript讨论组]

我在使用一个没什么人维护的库
https://github.com/sombriks/v...

作者把包装成了component

module.exports = {
  openlayers,
  install (Vue, options) {
    Vue.component('ol-map', olMap)
    Vue.component('ol-marker', olMarker)
  }
}

给出的使用例子是

请问,在这些component里都有一些method...我该如何invoke这些method呢?
比如olMap里有一个updateCenter的功能就很有用,但是我不知道怎么使用这种component里的method...
再比如下面有多个ol-marker,怎么能在vue里表明我要用的是第几个marker里面的method呢?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
阿神
<ol-map ref="map">
</ol-map>


this.$refs.map.updateCenter()
怪我咯

使用 ref 为子组件指定一个索引 ID
// 访问子组件
var child = parent.$refs.profile

见http://cn.vuejs.org/v2/guide/...子组件索引

伊谢尔伦
<template>
  <p id="map">
    <ol-map> 
      <ol-marker/>
      <ol-marker/>
      <ol-marker/>
    </ol-map>
  </p>
</template>

既然这三个组件都是一样的,为啥不这么写呢,如下:

<template>
  <p id="map">
    <ol-map> 
       <ol-marker v-for="(item,index) in 3" :key="index" :class="'list'+index"/>
    </ol-map>
  </p>
</template>

然后你再通过类名,list1,list2,list3找到不同的组件,或者给每个组件定义一个ref="something",通过this.$refs.something来找。个人的建议是:key是最好要写的,因为这样每个<ol-marker/>组件都是独一无二的,不然以后会比较麻烦,改了一个组件的东西其他的都会跟着变化,就互相伤害了,那就不好了是吧~

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号