vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue中__ob__: Observer踩坑

vue中__ob__: Observer的踩坑记录

作者:有玉微凉,是为樱琅

这篇文章主要介绍了vue中__ob__: Observer的踩坑记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

vue中__ob__: Observer踩坑

问题分析

看这个问题的朋友先看看情况是不是和我一样,再往下看

我的问题是一个对象数组,push进去对象的话,打印出来看,显示的是 [ob: Observer],点看能看到里面的数据,但是我遍历他的话一个值也拿不到,拿到的是空值,如果push的普通的数字,字符串啥的就没事。

如果问题一样的话可以继续往下看了。

经过半天的各种分析,网上看博客,然后自己也尝试了在不同位置打console.log和断点查看,

发现在给对象数组中push进去数据的时候,打印出来就是完美的对象数组,可以遍历,但是我要用的时候的那个地方打印出来就是这样的 [ob: Observer],而且他的console比push数据的地方打印出来的快,提前打印了,说明了现在是异步操作,我要用的地方数据提前打印了。

解决问题

开始我用了async await 来阻塞它,但是没啥用,最后没办法,只能用监听了

在监听这里不停的操作他,最后才解决了问题

一些小坑

JS中include不能查看对象是否重复

我操作的话是把对象JSON.stringify成字符串,存的时候也是按照这样存,查的时候也这样查,用的时候使用数组的map方法修改他的值,更改之后使用。

vue中__ob__: Observer属性对象

__ob__: Observer是什么?

_ob__: Observer这些数据是vue这个框架对数据设置的监控器,一般都是不可枚举的。

1.vue中为什么[__ob__: Observer]下无法取到数据或者取数据时出现慢一步的情况

_ob__: Observer表示很无辜。一般情况时数据本身的问题,考虑赋值是否时异步了或者慢于监听器。这一点需要注意。

2._ob__: Observer的取用方式

3.[ob: Observer]: 可视察数组,不能通过tableData === []这样判断是否为空,需要使用数组的长度判断才有效:tableData.length > 0

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文