vue中对于.sync修饰符的理解

父组件
<span>{{count}}</span>
<Son :son.sync="count"></Son> 
export default {
  name: '',
  data() {
    return {
     count:''
   }
  },
  created() {}
}
子组件
<template>
  <div>
    <el-button @click="clickOne">{{son}}8888</el-button>
  </div>
</template>

<script>
export default {
  name: '',
  props: ['son'],
  data() {
    return {}
  },
  created() {},
  methods: {
    clickOne () {
      this.$emit('update:son', 4)
    }
  }
}
</script>
父组件
<span>{{count}}</span>
<Son :son="count" @update="count = $event"></Son>
export default {
  name: '',
  data() {
    return {
     count:''
   }
  },
  created() {}
}
子组件Son
<template>
  <div>
    <el-button @click="clickOne">{{son}}8888</el-button>
  </div>
</template>

<script>
export default {
  name: '',
  props: ['son'],
  data() {
    return {}
  },
  created() {},
  methods: {
    clickOne () {
      this.$emit('update', 3)
    }
  }
}
</script>
父组件:
 <Son :son="count" @update="update"></Son>
 export default {
  name: '',
  data() {
    return {
     count:''
   }
  },
  created() {},
  methods: {
  update (one) {
   this.count = one
  }
}
子组件:
<template>
  <div>
    <el-button @click="clickOne">{{son}}8888</el-button>
  </div>
</template>

<script>
export default {
  name: '',
  props: ['son'],
  data() {
    return {}
  },
  created() {},
  methods: {
    clickOne () {
      this.$emit('update', 3)
    }
  }
}

这三种实现的效果是一样的
.sync就是一个语法糖 是一个子组件可以改变从父组件接收的props值的语法糖
son.sync="count"相当于父组件中绑定了:son="count"子组件中触发
this.$emit(‘update:son’, 传值)
跟v-model的语法糖类似
只不过v-model默认的是value绑定触发的是input事件详见v-model demo的文章
https://blog.csdn.net/LRQQHM/article/details/114331998

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值