.sync修饰符实现对prop的双向绑定
在有些情况下,我们可能需要对一个 prop 进行“双向绑定”。不幸的是,真正的双向绑定会带来维护上的问题,因为子组件可以修改父组件,且在父组件和子组件都没有明显的改动来源。2.3.0+ 新增.sync 修饰符,可以实现prop双向绑定。
举个例子,在一个包含visible prop的子组件中,
props: {
fileList: '',
},
可以用以下方法赋新值:
this.$emit('update:fileList', data)
然后父组件可以监听那个事件并根据需要更新一个本地的数据属性。例如:
<child
v-bind:fileList="parentFile"
v-on:update:visible="parentFile = $event"
></child>
我们为这种模式提供一个缩写,即 .sync 修饰符:
然后在父组件中:
<child :fileList.sync="parentFile"></child>
自定义组件v-model
v-model 只是一个语法糖,实际的含义是:
<ch