转载-vue2.0父子组件传值-双向绑定
作者不知道是谁了
方式一:
子组件
儿子:{{msg}}
父组件
父亲:{{msg}}
父组件通过prop修改子组件的数据状态,子组件通过$emit发送事件(event)信号,通知父组件修改父组件内的数据状态,同时父组件需要监听相关的event。
方式二:
使用v-model进行双向绑定,v-model是一种语法糖
等价于
但是,如果我们需要指定子组件的prop,和监听的event应该怎么做呢?
只需要在子组件中指定model即可
model: {
prop: 'msg',
event: 'changeMsg'
}
完整子组件代码如下:
儿子:{{msg}}
方式三:
使用 .sync ,也是一种语法糖
等价于
子组件只需要 emit('update:msg')即可。
完整子组件代码如下:
儿子:{{msg}}
方式二v-model与方式三sync有什么区别呢?
1、v-model只能指定一个属性,而sync可以使用在任意多个属性上。
2、v-model更多的是使用在表示该组件特有的“value”的变化,sync针对组件各种各样状态的传递。