在有些情况下,我们可能需要对一个prop进行“双向绑定”。不幸的是,真正的双向绑定会带来维护上的问题,因为子组件可以修改父组件,且在父组件和子组件都没有明显的改动来源。
在正常情况下,我们可能首先会想到子组件emit一个事件,让父组件来修改对应的值,但是这样代码过去冗余。在vue 2.3.0后新增了.sync修饰符,可以完美实现“双向绑定”
效果
具体实现
父组件:使用.sync修饰符向子组件中传入一个参数,注意带有.sync修饰符的v-bind不能和表达式一起使用
<son :msg.sync="msg" />
子组件:简单的一行代码即可实现“双向绑定”
this.$emit('update:msg', '父组件的值已被改变');