vue中的.sync修饰符

475 阅读1分钟

sync,同步的意思,vue中的.sync修饰符一般用在需要外部传参(props)的时候,其功能是当子组件的props值发生变化时,也会同步到父组件上所绑定。

子组件代码举例:

<template>
  <div>
    {{money}}
    <button @click="$emit('update:money',money-100)">花钱</button>
  </div>
</template>

<script>
  export default{
    props:['money'],
  }
</script>

父组件代码举例:

<template>
  <div>
    {{total}}
    <hr/>
    <Child :money.sync="total"/>
  </div>
</template>

<script>
  import Child from 'Child.vue'
  export default {
    components:{Child},
    data(){
      return {total:10000}
    },
  }
</script>

值得注意的是这里的<Child :money.sync="total" />相当于<Child :mony="total" v-on:update:money="total = $event" >

总而言之,子组件发布事件$emit(),父组件.sync对事件监听,当子组件props值发生改变,父组件里的值也会同步改变。