vue 子组件修改父组件的prop值

在Vue中,直接修改从父组件传递过来的prop是不推荐的,因为prop是单向数据流。要改变prop的值,可以使用`.sync`修饰符或者通过触发`$emit`来更新。具体做法是在父组件中添加.sync修饰符绑定prop,然后在子组件中使用`this.$emit('update:propName', newValue)`来通知父组件更新值。这种方法确保了数据流动的方向性和组件的封装性。
摘要由CSDN通过智能技术生成

前端页面有时会出现在子组件中修改从父组件传过来的prop的值,如果直接在子组件中修改该prop的值时控制台会报错。该如何在子组件中修改prop的值呢?

一、在父组件中绑定的值加上.sync

//使用子组件
<common :foo.sync="foo"></common>

//data
data(){
    return {
        foo: true
    }
}

二、在子组件中修改数据时用this.$emit('update:foo',newValue)

//标签
<button @click="changeValue">修改prop的值</button>
<div v-if="foo">哈哈哈哈哈</div>

//props
props:{
    foo:Boolean,
}

//methods函数
changeValue() {
    this.$emit("update:foo",false)
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值