Vue-.sync修饰符

本文介绍了Vue.js中`.sync`修饰符的作用,它是用于在子组件中实现对父组件传递过来的参数(props)进行双向绑定。通过示例展示了使用和不使用`.sync`修饰符时,子组件如何更新父组件状态的不同方式。`.sync`简化了在子组件中触发父组件属性更新的语法,而未使用`.sync`时需要通过回调函数来实现同样的效果。
摘要由CSDN通过智能技术生成

作用

用来修改父组件传递过来的参数props,在子组件中改变父组件状态的时候
实际上是对props的值做了一个双向绑定

示例

首先.sync实际上是一个语法糖,下面我们分别展示.sync和未使用语法糖的效果
使用.sync

父组件
	<div class="details">
        <h1>{{message}}</h1>
        <button @click='changeBn'>显示/隐藏</button>
        <item 
        :isShow.sync='isTrue'
        />
	</div>
	data(){
        return{
            isTrue:'true'
        }
    }
    methods:{
    changeBn(){
            this.isTrue=!this.isTrue
        }
    }
子组件item
   <div class="item" v-if='isShow'>
       <button @click='closeChild'>子组件的按钮显示隐藏</button>
    <p>我是子组件</p>
   </div>

   props:['isShow']
   methods:{
    closeChild(){
        this.$emit('update:isShow',false)
        //这里我们必须在事件执行名称前加上update:的前缀才能正确触发事件。
    }
   }

不使用语法糖

//父组件
   <div class="details">
        <h1>{{message}}</h1>
        <button @click='changeBn'>切换按钮</button>
        <item
        :isShow="isTrue"
        @update:isShow='value=>isTrue=value'//这里是个回调函数
        />
    </div>
    data(){
        return{
            isTrue:'true'
        }
    }
    methods:{
        changeBn(){
            this.True=!this.isTrue
        }
    }
//子组件
   <div class="item" v-if='isShow'>
       <button @click='closeChild'>子组件的按钮</button>
       <p>我是子组件</p>
   </div>
   props:['isShow']
   methods:{
    closeChild(){
        this.$emit('update:isShow',false)
    }
   }

在这里插入图片描述
点击实现了隐藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大鲤余

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值