vue  .sync修饰符_值传递

 

 

 

 

 vue  .sync修饰符_修饰符_02

 

 上图当父子组件进行通信时 , 父组件通过绑定的形式将数据传给子组件(注意v-bind是简便写法,但是必须传一个对象,对象中包含子组件props中定义的key,可以自动匹配)

 此时子组件如果想要修改某个由父组件传过来的值,不可以直接在子组件内部进行修改,因为这个值是从父组件传递过来的,而子组件将它修改不符合规范(vue中组件内部的值是双向绑定的,但是组件与组件之间是单向的数据流,必须通过某种方式进行值的改变)

 所以常规做法是子组件通过$emit的形式进行传递,将值传递给父组件,父组件通过触发这个事件将其内部的值更改掉再传递回子组件。但是这种写法可以由.sync来简化,.sync其实是一个语法糖,把上述步骤由vue内部做了一遍。所以直接在父组件上加一个.sync的修饰符。子组件直接由$emit就可以修改想要修改的值了(第一个参数需要是update:title这种格式。:后面是想要修改的key)。(.sync在Vue2.3.0之后的版本才恢复使用,Vue3没有这个修饰符,但有v-model可以解决类似问题)