Vue 中 .sync 修饰符的作用

134 阅读1分钟

.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" />