reavtive定义的数据丢失响应式

102 阅读1分钟

今天在使用 vite + element-plus 在开发工作中的项目,在编写面包屑导航的时候,通过reactive定义了一个响应式数据,根据路由信息去动态修改面包屑数据源的时候发现数据是变得,结合devtools中查看数据也是更改了,但是页 面视图却没有更新,一时间陷入困境。

image.png

Snipaste_2024-03-08_16-14-32.jpg

经过查证资料发现,在Vue3 中reactive对数组进行 filter 后赋值的元素,默认情况下不能实时响应。 因为filter返回的是一个新数组,不在引用原数组的值。Vue 没有办法检测到原数组的变化。
解决方案如下(网上找的方法---不好使)
        1、使用 reactive() 对过滤后的新数组进行包裹
        2、使用 ref() 创建响应式对象;或者是包裹每一个元素
        最终的解决方案:使用 ref() 创建响应式对象
大家如果有新的好的方案 可以评论区留言~