Fork me on Github

v-model和sync修饰符

  场景:  

  在用vue开发的过程中我们经常会遇到父子组件共用同一变量的情况,那么在这种情况下,我们肯定会想直接 把变量传过来用,因为是双向绑定的所以子组件就会修改这个变量,这样在vue中时会报错的。

  问题:  

  对于这种问题,我们就可以在父组件中用v-model或者是用一个属性加上sync修饰符并在子组件使用$emit('input',v)或者$emit('x:update',v)来解决,但是这两个东西到底有什么区别呢?

  结论:  

  个人认为两者只是语法上的区别,以此来实现两个组件之间数据的双向绑定,sync更加灵活一点,如果是v-model的话在子组件就只能用value来接这个参数了,而sync可随意

  延伸:  

  官方有哦说道:组件实例的作用域是独立的,这意味着不能(也不该)在子组件的模板内引用父组件的数据,父组件的数据需要通多prop才能下发到子组件中。

posted @ 2019-01-24 19:55  王者归来!  阅读(1659)  评论(0编辑  收藏  举报