子组件不能直接修改props传递进来的数据

不能直接修改props接收的数据

在vue项目中常用props和$emit实现父子组件之间的数据传递

用法:(这里以vue2为例)

父组件
在这里插入图片描述
子组件
在这里插入图片描述
如果在子组件的方法中直接对props接收的数据进行修改

updateCount(){ this.count++ }
则会直接报错提示你不能对props中的数据进行直接操作
在这里插入图片描述

想要对props接收到的数据进行修改,可以通过触发父组件在子组件上绑定的自定义是事件,在子组件中通过触发该自定义事件将修改数据传递出去,在父组件中进行修改
例如:
在这里插入图片描述
在这里插入图片描述
或者通过computed计算属性拿到一个依赖props中的数据的新数据,当该数据变化时,利用computed中的set,将新的值传递给父组件并修改
在这里插入图片描述
在这里插入图片描述

在vue3中也可使用props和emit实现父子通信
例如:接收props参数

//父组件中
//<Child :count='count' @updateCount='updateCount' />
import { defineProps, computed, defineEmits} from 'vue'
const props=defineProps(['count'])
const emits=defineEmits(['updateCount'])
const editCount=computed({
	get(){
		return props.count
	},
	set(val){
		emits('updateCount',val)
	}
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值