.sync: 是Vue中的语法糖,当子组件内部改变props属性值并更新到父组件中,这时就可以用到.sync修饰符,它会被扩展为一个自动更新父组件属性的 v-on 监听器
Vue中的规则
- 组件不能修改 props外部数据
$emit
可以触发事件,并传参$event
可以获取$emit
的参数
例:
子组件
<button @click="$emit('update:money',money-100)">
解释:当我点击按钮触发$emit
,就触发了update:money事件,并把二个参数进行传参
父组件
<child :money='total' v-on:update:money='total = $event'>
解释:意思是我把我data里面的 total告诉你, 监听 v-on update:money 当它触发以后,$event
获取到了 $emit
的参数,然后赋值给 total
.sync语法糖
由于在Vue中经常遇到这样的上面的场景
- 我把一个数据给你,但是你改的时候需要通知我改,你自己不能改,所以就有了 .sync
<child :money='total' v-on:update:money='total = $event'>
等价于
<child :money.sync="total" />