关于vue data数据{__ob__: Observer }的问题

闲时一点 / 2023-09-06 / 原文

比如用axios请求到数据,如果是用的then,那直接赋值给data对象里的属性。但是有情况是需要外部赋值,那就是异步请求的问题,外部打印接收赋值的变量为空,但是then里面打印有值,并且是带有{__ob__: Observer },这是vue本身对数组对象的监控器,没什么影响,你赋值那肯定监听,并不是说出现{__ob__: Observer },不可枚举。外部的变量想要拿到值就用setTimeout 延迟操作就行。

另外一种情况,需要去遍历(不能用forEach,不支持同步,需要用for)

请求构造自己想要的数据(本来是后端的做的) 有时为了方便就 把axios请求封装成一个方法,请求就得需要用async await同步阻塞。不然一样的出现异步赋值的问题。

这是实际实现是运用了深拷贝,有人说用JSON.parse(JSON.stringify(arr)) 这也是深拷贝的一种,这种的话,只能处理字符和数字和布尔类型的数据