vue获取dom元素注意事项


Posted in Javascript onDecember 28, 2017
mounted(){
    setTimeout(()=>{
     this.contentToggle();
    },1000)
  },

methods:{
   contentToggle(){
    console.log(this.$refs.bodyFont.offsetHeight);
   }
  }

vue想要获取dom元素的高,一般情况下我们都可以想到写在mounted函数里,即dom加载完再获取,但是结果并不如我们所想,又想到用一个

this.$nextTick(()=>{
   
    //函数
})

来获取,发现根本没用啊/。。

所以好的办法就是用一个setTimeout定时器,时间可以设为0,但是有时候生效,有时候不生效,还是加一个小的时间值比较保险,这样就可以保证获取到的一定是dom加载后的了,该原理适用于vue中很多传值的问题,刚开始获取不到传过来的值,用一个setTimeout就可。

ps:VUE获取DOM元素内容

通过ref来获取dom元素

在vue官网上对ref的解释

ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素; 如果用在子组件上,引用就指向组件实例

当 v-for 用于元素或组件的时候,引用信息将是包含 DOM 节点或组件实例的数组 

比如我现在要实现的效果是点击用v-for生成的li ,获取到该元素的值

首先要获取当前点击的li元素,我们要做的是

1.给dom添加点击事件和ref属性

<li class="sidebar-list" v-for="(item, index) in meunList" @click="setPageMenu(index)" ref="menuItem">
  <router-link class="sidebar-a" :to="{ path: item.listLink }" >{{item.listTitle}}</router-link>
</li>

2.然后在点击事件方法中使用ref

setPageMenu(index) {
//这个是获取当前menuItem值,用index来区分当前元素是v-for 产生的数组中的第几个数
  let getMenuText = this.$refs.menuItem[index].innerText;
}

总结

以上所述是小编给大家介绍的vue获取dom元素注意事项,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
Jul 06 Javascript
javascript天然的迭代器
Oct 29 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
Jan 03 Javascript
jQuery中noconflict函数的实现原理分解
Feb 03 Javascript
向JavaScript的数组中添加元素的方法小结
Oct 24 Javascript
jQuery 3.0中存在问题及解决办法
Jul 15 Javascript
js实现按钮控制带有停顿效果的图片滚动
Aug 30 Javascript
Bootstrap导航简单实现代码
Mar 06 Javascript
Angular2安装angular-cli
May 21 Javascript
Angular中点击li标签实现更改颜色的核心代码
Dec 08 Javascript
vue 解决form表单提交但不跳转页面的问题
Oct 30 Javascript
基于VSCode调试网页JavaScript代码过程详解
Jul 20 Javascript
vue实现文章内容过长点击阅读全文功能的实例
Dec 28 #Javascript
webpack搭建vue 项目的步骤
Dec 27 #Javascript
JS实现留言板功能[楼层效果展示]
Dec 27 #Javascript
js判断节假日实例代码
Dec 27 #Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
Dec 27 #Javascript
Angular实现的简单查询天气预报功能示例
Dec 27 #Javascript
Angular实现点击按钮后在上方显示输入内容的方法
Dec 27 #Javascript
You might like
php+dbfile开发小型留言本
2006/10/09 PHP
php批量删除数据
2007/01/18 PHP
PHP 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
table对象中的insertRow与deleteRow使用示例
2014/01/26 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
javascript禁止超链接跳转的方法
2016/02/02 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
jQuery选择器之基本选择器用法实例分析
2019/02/19 jQuery
haskell实现多线程服务器实例代码
2013/11/26 Python
python 内置函数filter
2017/06/01 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
python机器学习之随机森林(七)
2018/03/26 Python
详解python中的hashlib模块的使用
2019/04/22 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
优秀党员主要事迹
2014/01/19 职场文书
教学器材管理制度
2014/01/26 职场文书
跳槽求职信范文
2014/05/26 职场文书
大学迎新标语
2014/06/26 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
汉字听写大会观后感
2015/06/12 职场文书
孩子满月酒答谢词
2015/09/30 职场文书
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript