关于.sync修饰符
首先提到Vue的三个规则:
-
组件不能修改props外部数据
-
$emit
可以触发事件并且传参 -
$event
可以获取$emit
的参数
(都是作者规定的,没有为什么)
然后说起.sync
修饰符,其作用就是当一个子组件改变了一个外部数据的值时,这个变化也会同步到父组件中所绑定。
例如:<Child :foo.sync="value" />
。
这段代码:<Child :foo.sync="value" />
会被扩展成
<Child :foo="value" @update:foo="value = $event" />
这属于一个语法糖(糖衣语法),这段代码会被扩展为一个自动更新父组件属性的 v-on 监听器。