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 相关文章推荐
document.compatMode介绍
May 21 Javascript
Ajax搜索结果页面下方的分页按钮的生成
Apr 05 Javascript
qq悬浮代码(兼容各个浏览器)
Jan 29 Javascript
js鼠标悬浮出现遮罩层的方法
Jan 28 Javascript
jQuery实现炫酷的鼠标轨迹特效
Feb 01 Javascript
js实现点击链接后延迟3秒再跳转的方法
Jun 05 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
Mar 05 Javascript
Bootstrap进度条实现代码解析
Mar 07 Javascript
Three.js开发实现3D地图的实践过程总结
Nov 20 Javascript
AngularJS基于MVC的复杂操作实例讲解
Dec 31 Javascript
vue-router 源码之实现一个简单的 vue-router
Jul 02 Javascript
JavaScript实现打砖块游戏
Feb 25 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中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
php PDO属性设置与操作方法分析
2018/12/27 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
使用vue完成微信公众号网页小记(推荐)
2019/04/28 Javascript
微信小程序传值以及获取值方法的详解
2019/04/29 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
Python找出list中最常出现元素的方法
2016/06/14 Python
Python scikit-learn 做线性回归的示例代码
2017/11/01 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
python能开发游戏吗
2020/06/11 Python
基于opencv实现简单画板功能
2020/08/02 Python
Python如何读写CSV文件
2020/08/13 Python
如何通过python检查文件是否被占用
2020/12/18 Python
Python调用系统命令os.system()和os.popen()的实现
2020/12/31 Python
HTML5离线应用与客户端存储的实现
2018/05/03 HTML / CSS
加拿大最大的书店:Indigo
2017/01/01 全球购物
优秀毕业生自我鉴定
2014/01/19 职场文书
销售员个人求职的自我评价
2014/02/10 职场文书
餐厅经理岗位职责范本
2014/02/17 职场文书
银行开户授权委托书格式
2014/10/10 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android