Vue组件间通信方式(使用.sync)

在Vue1.x 中我们可能会需要对一个 prop 进行 "双向绑定"。当一个子组件改变了一个 prop的值时,这个变化也会同步到父组件中所绑定的值。

因它破坏了 "单向数据流" 的假设,.sync在2.0版本被移除,引起了广泛的讨论。在2.3.0版本.sync又回来了,不过与1.x不同。

这次只是原有语法的语法糖(syntax sugar)包装而成,其背后实现原理是,在组件上自动扩充一个额外的v-on监听器

1:(应用场景:父子组件间通讯)

Vue组件间通信方式(使用.sync)_第1张图片
父组件


Vue组件间通信方式(使用.sync)_第2张图片
子组件

2:(应用场景:多级组件嵌套需要传递数据时)$attrs 与 $listeners 来传递数据与事件

通常使用的方法是通过vuex。如果仅仅是传递数据,使用 vuex 处理,未免有点杀鸡用牛刀。Vue 2.4 版本提供了另一种方法,使用 v-bind=”$attrs”, 将父组件发送的数据,未被 子组件props特性绑定的属性传到子组件中(简单的说就是,爷爷给老爸三样东西,老爸只用了一件(props:['用了一件']),剩下的两件就可以传到孙子手里,孙子不用的话可以继续传递下去。。。。),通常配合上述说到的 interitAttrs 属性一起使用。


Vue组件间通信方式(使用.sync)_第3张图片
传递三个数据


Vue组件间通信方式(使用.sync)_第4张图片
子组件用了一个数据

使用了一个数据,通过v-bing=“$attrs”绑定给下一级组件

Vue组件间通信方式(使用.sync)_第5张图片


你可能感兴趣的:(Vue组件间通信方式(使用.sync))