javascript - Vue.js Component的method应该如何使用
迷茫
迷茫 2017-04-11 12:55:54
0
3
244

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

作者把包装成了component

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

给出的使用例子是

<template>
  <p id="map">
    <ol-map> 
      <ol-marker/>
      <ol-marker/>
      <ol-marker/>
    </ol-map>
  </p>
</template>

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

迷茫
迷茫

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

Antworte allen(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/>组件都是独一无二的,不然以后会比较麻烦,改了一个组件的东西其他的都会跟着变化,就互相伤害了,那就不好了是吧~

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!