vue props傳值常見問題


傳入的值想作為局部變量來使用,直接使用會 報錯。錯誤是說的避免直接修改父組件傳入的值,因為會改變父組件的值

資源搜索網站大全https://55wd.com 廣州品牌設計公司http://www.maiqicn.com

解決方案:

可以在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))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM