uniapp 踩坑一个月 ,vue 监听器 监听对象失效问题

我是做了个新闻缓存:

 

 

 

 

 

 注意对比红绿色:

 

 

 

绿色:之前直接往对象塞,

红色:就是因为这个!坑跨过去了。

 

 

 吧请求的数据传递给组件渲染

 

 

 组件接受到,监听器监听到复赋值然后渲染:

 

 

 

 

 

 


 

回头看:

 

 如果绿色的话,逻辑是通的,但是! 监听器深度监听的时候不会监听到你长度发生改变!即使你有deep深度监听【也能说错,如果错!请指正!】,这个问题苦苦困扰了我好久好久  ,搞得我直接吧缓存干掉,今天早上我又回去优化,重新构建代码,

最后一个早上也没成功,翻阅了好多资料【自己Vue基础不扎实】,发现了一句话:

如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。

 

 

那么!我就知道了,为什么监听器只监听到一次,后面长度、值变化他都不管了,因为 即使你对象发生变化也好,Vue还是没有  时实 的传递给   “新闻容器组件”   ,那么:

用$set即可,用了他就会更新响应式达到时实效果。

 

有错误球球指正!!!!!千万!!!!!一起交流一起学习!

完.

 

 

2022年7月12日 15:02:44

其实解决这个很简单,也不用用到this.$set

数组他不是不会事实更新,因为我是点击了选项,然后去加载数据,数据回来了渲染,恰好渲染的太快,数据加载太慢,造成的,所以我们可以:

写法:

加上等待框,让等待框转,这时候渲染的是等待框,到时候你数据回来了,你再去渲染数据,那就完美解决。

其实早就解决了,一直找不回来这个博客,现在找到了,就顺便写下。

 

 

 2022年10月15日 13:57:27:参考别人总结的方法,随便看到记录一下

问题:

1)因为父组件有缓存等因素,子组件创建后没有释放,传入参数无效

2)父组件的tab切换, 导致子组件一直存在, 没有刷新

 

解决方法:

方案一: 只要让子组件强制刷新就可以获取到props传递过来的值了, 使用v-if的特性(销毁和重建)可以强制刷新子组件

如果是刷新某个子组件,则可以通过v-if指令实现。我们知道,当v-if的值发生变化时,组件都会被重新渲染一遍。因此,利用v-if指令的特性,可以达到强制刷新组件的目的。


方案二: 使用this.$forceUpdate强制重新渲染

如果要在组件内部中进行强制刷新,则可以调用this.forceUpdate强制重新渲染组件,从而达到更新目的。

posted @   咸瑜  阅读(3248)  评论(1编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示