解决vue页面DOM操作不生效的问题


Posted in Javascript onMarch 17, 2018

现象:

使用Element UI渲染了一个树形结构,设计在鼠标移入每个节点是显示其中的操作按钮,效果如下:

解决vue页面DOM操作不生效的问题

下面是出错部分:

在新增节点后移入新增节点附近(图中是移入一级2),功能按钮的显示位置出现偏移

解决vue页面DOM操作不生效的问题

原因查找:

经过调试发现是在新增节点后,执行DOM操作获取节点时,取到的仍是之前的结构,新增的节点并未获取到。

原因分析:

猜测是vue使用的虚拟DOM,使得页面虽然已经渲染出来,但在Vue实例中让处在在虚拟DOM中,无法获取。

解决方法:

使用Vue.nextTick,看下官方材料:

解决vue页面DOM操作不生效的问题

‘在下次 DOM 更新循环结束之后执行延迟回调',这句话不是特别理解,不过可以看出DOM更新是一个循环的过程,在过程结束之前无法获取到真实的DOM元素(至于这个循环是多久,还在探索中)。而将DOM操作放在nextTick中操作便可以获取到更新后的DOM。

结果:

依据上述原理,将DOM操作的函数在更新数据后在nextTick里调用,实现了理想中的效果。

解决vue页面DOM操作不生效的问题

解决vue页面DOM操作不生效的问题

解决vue页面DOM操作不生效的问题

以上这篇解决vue页面DOM操作不生效的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
收集的网上用的ajax之chat.js文件
Apr 08 Javascript
监控 url fragment变化的js代码
Apr 19 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
Mar 11 Javascript
PHP开发者必须掌握的6个关键字
Apr 14 Javascript
在myeclipse中如何加入jquery代码提示功能
Jun 03 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
Oct 24 Javascript
js 定义对象数组(结合)多维数组方法
Jul 27 Javascript
原生js的RSA和AES加密解密算法
Oct 08 Javascript
jQuery的$.extend 浅拷贝与深拷贝
Mar 08 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
Sep 04 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
Aug 14 Javascript
关于对TypeScript泛型参数的默认值理解
Jul 15 Javascript
vue中实现先请求数据再渲染dom分享
Mar 17 #Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
Mar 17 #Javascript
vue获取当前激活路由的方法
Mar 17 #Javascript
vue 实现复制内容到粘贴板clipboard的方法
Mar 17 #Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
Mar 17 #Javascript
vue结合Echarts实现点击高亮效果的示例
Mar 17 #Javascript
vue实现a标签点击高亮方法
Mar 17 #Javascript
You might like
广播爱好者需要了解的天线知识
2021/03/01 无线电
php模拟js函数unescape的函数代码
2012/10/20 PHP
php跨站攻击实例分析
2014/10/28 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
Vue2.0实现将页面中表格数据导出excel的实例
2017/08/09 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
Vant 在vue-cli 4.x中按需加载操作
2020/11/05 Javascript
python使用pil库实现图片合成实例代码
2018/01/20 Python
Python爬虫实例扒取2345天气预报
2018/03/04 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
Flask-WTF表单的使用方法
2019/07/12 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
用python实现前向分词最大匹配算法的示例代码
2020/08/06 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
音乐表演专业毕业生求职信
2013/10/14 职场文书
会计大学生职业生涯规划书范文
2014/01/13 职场文书
大学毕业感言100字
2014/02/03 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
优秀广告词大全
2014/03/19 职场文书
检讨书范文300字
2015/01/28 职场文书
中标通知书格式
2015/04/17 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
Node.js实现断点续传
2021/06/23 Javascript
关于MySQL中explain工具的使用
2023/05/08 MySQL