跳到主要内容

自定义事件

基础事件参考 :v-on 指令


自定义事件

自定义组件使用v-model

(2.2.0+新增)

一个组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件。

我们知道 v-model 其实是个语法糖。

<input v-model="searchText">

等价于

<input 
:value="searchText"
@input="searchText = $event.target.value"
>

当用在自定义组件上的时候,我们需要将v-mode绑定的值:

  • 传递给子组件一个叫value 的属性,这个value属性会自动绑定到子组件的value prop上。

  • 在子组件中当这个值被改变的时候,通过手动抛出 input 事件的方式,将该值抛出,这个值会自动更新

    v-model绑定的值。

从而实现自定义组件的双向绑定。

举个例子🌰:

例如hand-over自定义组件:我 v-model 绑定的是一个对象。

然后在hand-over.vue中的props需要一个value为对象类型:

上面是将 handOverObj 作为初始值传入自定义组件,来初始化显示(初始化的操作需要手动进行,这里省略)。

下面如果需要在值改变的时候传回到handOverObj上需要通过自定义input事件抛出。

this.$emit('input', this.selectObj); // this.selectObj 为修改后的值

后面那个值就是我需要更新的handOverObj值。

如此这般,这般如此就实现了双向绑定。