沐鳴註冊網站_vue props傳值常見問題
傳入的值想作為局部變量來使用,直接使用會 報錯。錯誤是說的避免直接修改父組件傳入的值,因為會改變父組件的值
解決方案:
可以在data中重新定義一個變量,改變指向,但是也只是針對簡單數據類型,因為複雜數據類型棧存貯的是指針,
props:['listShop'],
data(){
return{
listShopChild:this.listShop
}
},
created(){
this.listShopChild=30
}
對複雜數據類型,
1. 可以手動深度克隆一個複雜的數據出來,循環或者遞歸都行
//數組
var x = [1,2,3];
var y = [];
for (var i = 0; i < x.length; i++) {
y[i]=x[i];
}
console.log(y); //[1,2,3]
y.push(4);
console.log(y); //[1,2,3,4]
console.log(x); //[1,2,3]
//對象
var x = {a:1,b:2};
var y = {};
for(var i in x){
y[i] = x[i];
}
console.log(y); //Object {a: 1, b: 2}
y.c = 3;
console.log(y); //Object {a: 1, b: 2, c: 3}
console.log(x); //Object {a: 1, b: 2}
2. Object.assign (看情況使用)
只會對只是一級屬性複製,比淺拷貝多深拷貝了一層而已,所以還是無法達到深度克隆的目的.
3. 強大的jsON.stringify和jsON.parse
const obj1 = JSON.parse(JSON.stringify(obj))
站長推薦
1.雲服務推薦: 國內主流雲服務商,各類雲產品的最新活動,優惠券領取。地址:阿里雲騰訊雲華為雲
2.廣告聯盟: 整理了目前主流的廣告聯盟平台,如果你有流量,可以作為參考選擇適合你的平台點擊進入
鏈接: http://www.fly63.com/article/detial/7486