在vue2中操作数组,不论是foreach还是push等操作,然后打印结果总是会出现[ob: Observer]包裹着我们想要的数据,而在vue3中是出现proxy对象包裹着我们想要的数据,打印能看到,但是代码里面取不到里面的值。
顺便记录一下小坑
forEach里面的ruturn只是跳出循环,并不返回任何值,返回的是undefined,如果要想return出来值的话,需要在外面定义一个变量,在foreach里面把值赋给新定义的变量,然后在foreach的外部return值。这样才可以
话说回去,至于为什么会产生上面的[ob: Observer] 与proxy,仍不清楚,只是发现了什么情况下会出现这种情况,解决办法有两个,一个是不停的监听,拿最新值,还有一个就是用JSON.parse和JSON.stringify包一层再拿值。
在Vue2中,数组操作如foreach和push后,数据会被Observer包装,显示为[ob:Observer]。在Vue3中,数据则表现为Proxy对象。注意forEach的return不会返回值,需额外处理。解决包裹问题的方法包括监听更新获取最新值或使用JSON.parse和JSON.stringify来解封值。
1548

被折叠的 条评论
为什么被折叠?



