Vue的组件间通信并不是双向绑定的 子组件向父组件通信需要emit。

 

Vue 中 sync的作用

...

<childComponent :a.sync = 'b'>
<childComponent />

...

 

此时子组件有一个prop a

父组件有一个data b

 

子组件中emit('update:a',...args)的时候,
父组件的data b就会同步变化

 

当父组件的data b变化的时候 子组件的prop a 就监测到了变化

 


 实现了父组件中数据b 和 子组件prop a的双向绑定。

 


如果没有这个语法糖

需要写

 

...

<childComponent @update:a='(val )=>(b = val)'   :a='b' >
<childComponent />

...

 

子组件emit('update:a',...args) 的时候

会引发父组件中 data b的变化

如果父组件中data b发生变化,子组件的prop a会监测到变化