vue中我改变了data中的一个值,但现在视图上没有实时更新,请问我怎么拿到更新后的值?

  • Vue在数据初始化的时候会对data,computed,watcher中的属性进行依赖收集,如果支持proxy,则直接使用proxy进行拦截,好处是可以深层次的进行拦截,如果不支持proxy,则使用object.defineProperty来进行数据拦截依赖收集。但是object.defineProperty无法做到深层次的监听,所以对属性进行递归算法去实现依赖收集,如果在初始化没有将属性收集进去,则很有可能没有收集到依赖,这种情况则需要使用$set, 在$set中重新进行依赖收集。    
  • 还有一种情况是直接操作数组的下标,也不会发生dom更新,其实vue对数组的push, pop,unshift, shift,splice,sort,reverse这几个方法进行了重新定义,如果使用这几个方法对数组进行操作,是可以监听到数据变化的。    
  • 还有一种,就是你的数据变更在dom挂载之前,比如,数组要放到一个容器里渲染,可是容器还没有挂载出来。导致找不到dom,这种情况就需要使用$nextTick。
posted @   鼓舞飞扬  阅读(1429)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示