preloader image
props/$emit组件通信及语法糖的使用

props/$emit组件通信及语法糖的使用

props/$emit

子组件想要显示父组件的数据,就props。 子组件想要改变父组件的数据,就$emit。

v-model语法糖

v-model是 属性value 和 事件input 的语法糖。

适用于:触发事件返回的值 正是 属性要改的值,一般是单一属性。比如触发事件返回的值正好就是该属性的新值;

适用于:表单类的组件,因为属性和事件默认是value和input

.sync语法糖

.sync语法糖默认是 属性xxx 和 事件update:xxx

适用于触发事件返回的值 正是 属性要改的值,一般是单一属性

适用于:非表单类的组件

v-modal:xxx语法糖

vue3新增,取代了.sync语法糖

父组件的变化:

原生写法:父组件监听update:checked事件并接收子组件传入的值

.sync语法糖写法:其中的prop属性为checked,event事件为update:checked

v-model:xxx语法糖写法:prop属性为checked,event事件为update:checked

子组件没有变化,仍然是props接收父组件传入的属性值,通过$emit触发事件返回属性的值。

总结

props/$emit是父子组件最常用的通信方式,而v-model、.sync只是其语法糖

vue3后都开始使用v-modal:xxx语法糖;

语法糖的缺点是子组件只是单一的修改某个父组件值,复杂逻辑还是老实用props/$emit

其实语法糖只是在父组件用的时候更加方便,而子组件该咋样还是咋样。

参考

props/$emit、v-model、.sync的适用场景 -- vue组件通信系列

vue3中v-model的重大更新

总结Vue组件的通信

Copyright © 2088 下一次世界杯_世界杯巴 - xbpifu.com All Rights Reserved.
友情链接