解决Vue响应式数据已获取而视图不更新的问题

 更新时间:2024年08月31日 09:34:02   作者:Sing前端-悟空  
这篇文章主要介绍了解决Vue响应式数据已获取而视图不更新的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

首先 

我们要深刻理解 Vue响应式的原理 通过get 和 set进行获取与设置 同时通知观察者进行新旧虚拟dom树 diff算法就地更新 重新渲染组件

特别注意

Vue官方文档的注意事项

由于javaScript的限制 Vue不能检测数组和对象的变化 因此你就要思考 为什么我的响应式有问题

我们看一个实战bug 同事托我解决的一个问题

watch 侦听tree回调函数 过滤出来的数组 从而去触发filterNode

但是watch正常 但是偏偏不触发filterNode 一切正常 数据全有 变化也有 refdom节点也能打印出来 就是不触发~ 唯一的可能性 树是空的 所以导致不触发回调过滤

但是有时候刷新页面能触发 有时候不能触发 我怀疑是 Vue的热更新和浏览器的缓存导致

因此我们可以想象为什么 树是空的 我明明有数据 为什么dom上的节点为空

只有一种可能 数据更新 视图没有获取到 那就证明Vue响应式出错了

所以我发现我同事在数据处理上有问题 他利用下标去处理数组进行循环赋值 因此让Vue没有劫持到

所以我换了种写法 用的push 因为push可以做到Vue对数据更新的检测

对于这种问题 Vue官网提供的 Set方法也可以解决 不过这属于亡羊补牢 根本问题并没有解决。

对于解决bug

困难不在于如何去解决 而是难在去寻找问题 排查问题所在 排查问题的能力是一位开发者至关重要的手段。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
 

相关文章

  • vue3+vite中报错信息处理方法Error: Module “path“ has been externalized for browser compatibility...

    vue3+vite中报错信息处理方法Error: Module “path“ has&nb

    这篇文章主要介绍了vue3+vite中报错信息处理方法Error: Module “path“ has been externalized for browser compatibility...,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Vue3中的onMounted详解与使用方法详解

    Vue3中的onMounted详解与使用方法详解

    这篇文章主要介绍了Vue3中的onMounted生命周期钩子,它在组件挂载到DOM后执行代码,onMounted只调用一次,适合进行异步操作、DOM操作和事件监听,在使用时需要注意组件销毁和响应式数据的管理,需要的朋友可以参考下
    2024-11-11
  • 在vue中使用jsonp进行跨域请求接口操作

    在vue中使用jsonp进行跨域请求接口操作

    这篇文章主要介绍了在vue中使用jsonp进行跨域请求接口操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 前端Vue3列表滑动无限加载功能实现

    前端Vue3列表滑动无限加载功能实现

    这篇文章主要介绍了前端Vue3列表滑动无限加载功能实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-05-05
  • Vue实现点击箭头上下移动效果

    Vue实现点击箭头上下移动效果

    这篇文章主要介绍了Vue实现点击箭头上下移动效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Vue路由跳转问题记录详解

    Vue路由跳转问题记录详解

    本篇文章主要介绍了Vue路由跳转问题记录详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 通过vue-cropper选取本地图片自定义裁切图片比例

    通过vue-cropper选取本地图片自定义裁切图片比例

    这篇文章主要介绍了Vue选取本地图片,自定义裁切图片比例 vue-cropper,本文分步骤结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • JavaScript的Vue.js库入门学习教程

    JavaScript的Vue.js库入门学习教程

    Vue的很多思想借鉴于Angular,但却比较轻量和自由,这里我们整理了JavaScript的Vue.js库入门学习教程,包括其架构思想与核心的数据绑定方式等,需要的朋友可以参考下
    2016-05-05
  • vue使用jsonp抓取qq音乐数据的方法

    vue使用jsonp抓取qq音乐数据的方法

    这篇文章主要介绍了vue使用jsonp抓取qq音乐数据的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • 搭建vue开发环境

    搭建vue开发环境

    这篇文章主要介绍了搭建vue开发环境的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07

最新评论