vue3数据更新了,但是视图没有更新、下拉选择框数据更新了,视图还是没有数据(记录初次使用vue3的时候遇到的一些问题,以及解决办法)

前言:一直在学习vue3,但是一直没有机会使用,然后行情不好整个项目解散了,导致被迫失业,通过长达三个月的找工作终于找到了一份工作,工资还没有上家高,但是使用了vue3开发的项目,初次实战vue3,也遇到了两个比较有意义的问题,总结下

一、第一个问题
1、问题描述:

一个联动的下拉选择框,一个选择框的数据是前端定义的,第二下拉选择是通过第一个选择框的value 值去请求后端接口得到的。如图(因为其他原因,接口掉不通,先模拟一下)

vue3数据更新了,但是视图没有更新、下拉选择框数据更新了,视图还是没有数据(记录初次使用vue3的时候遇到的一些问题,以及解决办法)_第1张图片

vue3数据更新了,但是视图没有更新、下拉选择框数据更新了,视图还是没有数据(记录初次使用vue3的时候遇到的一些问题,以及解决办法)_第2张图片

vue3数据更新了,但是视图没有更新、下拉选择框数据更新了,视图还是没有数据(记录初次使用vue3的时候遇到的一些问题,以及解决办法)_第3张图片但是请求得到了之后,打印数据也是更新了的,但是视图就是不更新,第二个下拉选择框里面就是没有数据,当修改文件之后呢去看又有了,网上搜索很多也没有收到合适的解决方法。

2、解决这个问题的经历

因为使用的antd-vue的UI,实在没有办法了,我就下了一个elementUI plus试了一下,奇怪的是elementUI plus能行???,如下图:

vue3数据更新了,但是视图没有更新、下拉选择框数据更新了,视图还是没有数据(记录初次使用vue3的时候遇到的一些问题,以及解决办法)_第4张图片

效果图下图:elementUI plus有视图,antd-vue没有,当elementUI选了之后,antd-vue就有数据了

vue3数据更新了,但是视图没有更新、下拉选择框数据更新了,视图还是没有数据(记录初次使用vue3的时候遇到的一些问题,以及解决办法)_第5张图片

vue3数据更新了,但是视图没有更新、下拉选择框数据更新了,视图还是没有数据(记录初次使用vue3的时候遇到的一些问题,以及解决办法)_第6张图片

上面都只是经历,虽然使用elementui 把整个antd-vue的form表单都替换了也能使用,但是一个项目使用两个UI框架不现实,会导致整个项目都变大。没有办法,还的继续想办法解决。

3、问题所在以及如何解决

后来终于找到问题所在了:是因为第二个下拉框的数据relatedPoolList使用reactive定义的,我是拿到了数据之后直接赋值了给relatedPoolList,如图

vue3数据更新了,但是视图没有更新、下拉选择框数据更新了,视图还是没有数据(记录初次使用vue3的时候遇到的一些问题,以及解决办法)_第7张图片这样导致的结果是给 relatedPoolList 赋值了一个全新的不是响应式的数据,那么relatedPoolList就不在是响应式的了

解决办法:将 relatedPoolList 用ref定义,赋值的时候就是relatedPoolList.value == [xxx],当然还有其他的办法,只要不破坏relatedPoolList是个响应式的数据就行。如图

vue3数据更新了,但是视图没有更新、下拉选择框数据更新了,视图还是没有数据(记录初次使用vue3的时候遇到的一些问题,以及解决办法)_第8张图片

vue3数据更新了,但是视图没有更新、下拉选择框数据更新了,视图还是没有数据(记录初次使用vue3的时候遇到的一些问题,以及解决办法)_第9张图片

但是疑问还在,为什么elementUI plus能行?????

你可能感兴趣的:(vue3,前端开发,前端,vue.js)