1.props传值想作为局部变量来使用,直接使用会报错
避免直接修改父组件传入的值,因为会改变父组件的值
props:['listShop'],
data(){
return{}
},
created(){
this.listShop=30
}
- 解决方案1:可以在data中重新定义一个变量
简单类型数据可以直接赋值,复杂数据就需要深度克隆了(JSON.parse(JSON.stringify(this.listShop));或者自己写深度克隆方法)
props:['listShop'],
data(){
return{
listShopChild:this.listShop
}
},
created(){
this.listShopChild=30
}
- 解决方案2:直接用computed改变
computed:{
listShopChild(){
return this.listShop
}
}
方案2 存在的问题
注意:此时用computed时,如果是数组this.$set(arr,1,true)对应的值耶不更新,这个很坑,这个bug我找个很久
如果传入的值只是在data定义,并未在methods或生命周期钩子更改,直接改变也会报错
所以还是可以先用局部变量接收,再修改,这个坑比较多