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 相关文章推荐
js 金额文本框实现代码
Feb 14 Javascript
自己编写的类似JS的trim方法
Oct 09 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
Oct 20 Javascript
JavaScript Math 对象常用方法总结
Apr 28 Javascript
微信小程序  modal详解及实例代码
Nov 09 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
Apr 04 Javascript
dts文件中删除一个node或属性的操作方法
Aug 05 Javascript
vue下的@change事件的实现
Oct 25 Javascript
JavaScript遍历数组的方法代码实例
Jan 14 Javascript
vue中的使用token的方法示例
Mar 10 Javascript
JavaScript 闭包的使用场景
Sep 17 Javascript
关于vue-router-link选择样式设置
Apr 30 Vue.js
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并发访问实例代码
2012/09/06 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
解析window.open的使用方法总结
2013/06/19 Javascript
Nodejs进程管理模块forever详解
2014/06/01 NodeJs
javascript中callee与caller的区别分析
2015/04/20 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
python实现读取命令行参数的方法
2015/05/22 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
python面向对象法实现图书管理系统
2019/04/19 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
python中round函数保留两位小数的方法
2020/12/04 Python
Oracle的内存结构(Memory structures)
2015/06/10 面试题
局域网定义和特性
2016/01/23 面试题
铁路工务反思材料
2014/02/07 职场文书
服务质量承诺书
2014/03/27 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
2014年党务工作总结
2014/11/25 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
学校就业保障协议书
2019/06/24 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python
MySQL 时间类型的选择
2021/06/05 MySQL
python垃圾回收机制原理分析
2022/04/13 Python