Vue修饰符.sync

在使用Vue的时候,有时候需要把数据从父组件传给子组件,然后子组件又需要操作这个数据,但是子组件不能直接操作父组件的数据,这时候就通过$emit将一个事件传给父组件,父组件监听这个事件完成操作
代码举例:

// 子组件
<template>
  <div>
    儿子要花父亲的钱{{money}}
    <button @click="$emit('update:money', money - 100)">花钱</button>
  </div>
</template>
<script>
  export default {
    props:["money"]
  }
</script>

// 父组件
<template>
  <div id="app">
    父亲现在有{{total}}
    <hr />
    <Child :money=total v-on:update:money="total = $event"/> 
    <!-- <Child :money.sync=total />-->
  </div>
</template>

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

界面如下



在儿子那点击一次按钮,父亲的钱就少100


image.png

上面代码中
<Child :money=total v-on:update:money="total = $event"/> 

可以简写成

 <Child :money.sync=total />

.sync修饰符其实就是对上面代码的省略,一个语法糖

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容