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

猜你喜欢

转载自www.cnblogs.com/LChenglong/p/12509065.html
ob