困扰问题:初步学习vue3,普通的数组对象赋值给ref响应式数组对象,第一遍正常,第二遍控制台打印有数据但是页面没回显。
场景:
将ref数组对象和公共列表(是let的一个几百条数据的数组对象) 中他们name相同的数据,在ref的数组对象里删除该对象。let了一个listOtTableData = []; 处理完逻辑之后赋值 第一次正常删除页面显示正常,第二次删除正常,控制条打印xx.value显示正常 页面没反应。
截图如下
百度、chatgpt XXXX一顿查,相关概念表明直接重新赋值丢失响应式是因为引用地址变了。
尝试解决方案1:我就尝试xx.value = reactive(listOtTableData); 将数组对象变为响应式赋值给它,结论也是不可以。
尝试解决方案2(toRefs理解不透彻):利用toRefs返回一个和参数一致的普通对象,只不过属性的值都变成了ref对象,结论也是不行。
尝试解决方案3:将最终处理好的数组对象用扩展运算符赋值给xx.value,结论正确!
由于刚学习vue3,刚开始reactive就遇到过一次这样回显不到页面上的场景,但是换成ref后就可以了。我还是不理解得地方太多,各位大佬如果有其他解决方案或者对文章有指点 请留言,多指教