sync实现父子组件数据同步

 父组件:

<template>
  <div>
      <div>小明的爸爸现在有{{ money }}元</div><br>

      <h2>不使用sync修饰符</h2>
      <!--
        :money  父组件给子组件传递props
        @update:money  给子组件绑定的自定义事件,只不过名字叫 update:money
        目前现在这种操作,其实和v-model很相似,可以实现父子组件数据同步
      -->
      <SyncChild1 :money="money" @update:money="money=$event"></SyncChild1><br>

      <h2>使用sync修饰符</h2>
      <hr>
      <!--
        :money.sync  1)父组件给子组件传递props[money]   2)给当前子组件绑定一个自定义事件,而且事件名称为 update:money
        可以实现父子组件数据同步
      -->
      <SyncChild2 :money.sync="money"></SyncChild2>
  </div>
</template>

<script>
import SyncChild1 from "@/views/communication/SyncTest/SyncChild1.vue";
import SyncChild2 from "@/views/communication/SyncTest/SyncChild2.vue";
export default {
    name: "Synctest",
    components:{SyncChild1,SyncChild2},
    data(){
        return{
            money:10000
        }
    }
}
</script>

子组件1:

<template>
  <div>
    <span>小明每次花100元</span>
      <button @click="$emit('update:money',money-100)">花钱</button>
      <span >爸爸还剩{{ money }}元</span>
  </div>
</template>

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

子组件2:

<template>
  <div>
      <span>小明每次花100元</span>
      <button @click="$emit('update:money',money-100)">花钱</button>
      <span >爸爸还剩{{money}}元</span>
  </div>
</template>

<script>
export default {
    name: "SyncChild2",
    props:["money"]
}
</script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值