它用来模拟实现父子组件的双向绑定。
父组件中定义一个数据项,并传给子组件,子组件中可以对数据项进行修改,并同步到父组件中来。
在普通的父传子的基础上添加.sync
<son :num.sync="numFormParent"></son>在子组件中,正常定义props来接收数据,并补充一个特殊的事件出来以达到修改父组件中的数据的目标。
this.$emit('update:num', 新值)这个特殊的事件名就是update:props名
同款代码使用v-model来实现
Vue.component('parent', { template: `<div class="box">我是父组件,数据值是{{num}} <son v-model="num"></son></div>`, data() { return {num: Date.now()} } }) Vue.component('son', { template: `<div class="box"> 我是子组件{{value}} <button @click="hChange">修改num</button> </div>`, props:['value'], methods: { hChange() { this.$emit('input', Date.now()) } } })