本文主要是介绍vue中在mounted使用$refs获取不到DOM元素,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
vue中在mounted使用$refs获取不到DOM元素
- 前言
- 解决方案
- 1、通过使用$nextTick来获取
- 2、updated中获取
前言
在使用ref的时候,在mounted中通过$ref获取节点是获取不到报undefined
this.$refs.xx 为 undefined
解决方案
在mounted钩子中加载回来的数据不会在这个阶段更新到DOM中
1、通过使用$nextTick来获取
n e x t T i c k 是在下次 D O M 更新循环结束之后执行延迟回调,在修改数据之后使用 nextTick是在下次DOM更新循环结束之后执行延迟回调,在修改数据之后使用 nextTick是在下次DOM更新循环结束之后执行延迟回调,在修改数据之后使用nextTick,则可以在回调中获取更新后的DOM。
this.$nextTick(function () {// 调用$nextTick函数let dom1 = this.$refs.test;// o了
})
2、updated中获取
updated阶段
在实例更新完成后被调用,此时实例的数据已经重新渲染到DOM上。可以在这个阶段对DOM进行操作,但要避免无限循环的更新。
updated () {this.contentHight = this.$refs.content.offsetHeight },
如果未加载完成可以使用
updated () {this.$nextTick(() => {this.contentHight = this.$refs.content.offsetHeight})},
这篇关于vue中在mounted使用$refs获取不到DOM元素的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!