vue項目里面,__ob__對象的理解


最近在用一個后台管理開源框架時,動態配置路由,報錯addRoutes()傳的值不是數組,研究后發現是因為我傳的數組中有__ob__這個對象。

后來只有格式轉了一下才生效。

// router.addRoutes(accessRoutes)    // 這種寫法報錯
router.addRoutes([...accessRoutes])

 

兩個數組accessRoutes 和 [...accessRoutes]打印之后的區別:

 

 

 

 

vue中,帶有_ob__:Observer的數組,無法取到里面的值

 

 

console.log('開始')
console.log([...this.upData]) 拷貝一個數組, 打印此刻的瞬時狀態
console.log(this.upData[0])
console.log('結束') 

 

 

 

 

 打印this.upData[0]的值,為undefined,
自己也百度了下vue的Observer,只是得到大概信息:
observer是Vue核心中最重要的一個模塊(個人認為),能夠實現視圖與數據的響應式更新,底層全憑observer的支持。

 

百度也有答案講的是:控制台打印的是引用,打印的時候並沒有值,之后某個時刻有值了,然后才能打印出來值,提議可以試試下面方法:

console.log('開始')
console.log([...this.upData]) 拷貝一個數組, 打印此刻的瞬時狀態
console.log(this.upData[0])
console.log('結束') 

 

 

參考地址:https://segmentfault.com/q/1010000016033230

 


免責聲明!

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



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