场景:
在进行数据请求的时候,需要携带一个数组参数,本以为直接将数组提交上去就万事大吉,但是后端并没有接收到这个数组数据。经过反复排查,当直接输出这个有问题的数组时,显示的是[__ob__: Observer],点开这个数组后里面却有需要的数据。
分析:
__ob__: Observer里面的这些数据是vue对数据设置的监控器,一般都是不可枚举的,这些数据已经绑定在了vue之中,vue需要为数据添加监控器。如果我们强制删掉了这些监控器,那么这些数据也就失去了监控,vue的意义也就被浪费了。
在往下阅读前,先确保请求数据在打印数据之前,因为有可能是请求数据的时候遇到了宏任务微任务问题,在向后端请求数据之前打印一个空的数组。详细介绍参考以前的一篇文章:
[ 万字长文 ]Promise与宏任务、微任务_flow_camphor的博客-CSDN博客
这里将引出几篇关于Vue双向绑定的原理、Observer、Watcher、dep等知识点文章的介绍,在浏览完以下文章后再来看解析会轻松很多。
更新文章中。