乐趣区

关于前端:VUE在组件上使用-vmodel

自定义事件也能够用于创立反对 v-model 的自定义输出组件。记住:

<input v-model="searchText">

等价于:

<input
  v-bind:value="searchText"
  v-on:input="searchText = $event.target.value"
>

当用在组件上时,v-model 则会这样:

<custom-input
  v-bind:value="searchText"
  v-on:input="searchText = $event"
></custom-input>

为了让它失常工作,这个组件内的 <input> 必须:

将其 value attribute 绑定到一个名叫 value 的 prop 上
在其 input 事件被触发时,将新的值通过自定义的 input 事件抛出

写成代码之后是这样的:

Vue.component('custom-input', {props: ['value'],
  template: `
    <input
      v-bind:value="value"
      v-on:input="$emit('input', $event.target.value)"
    >
  `
})

当初 v-model 就应该能够在这个组件上完满地工作起来了:

<custom-input v-model="searchText"></custom-input>

https://cn.vuejs.org/v2/guide…

退出移动版