vue中onmounted周期里获取不到dom的原因及分析
作者:zn_firm
这篇文章主要介绍了vue中onmounted周期里获取不到dom的原因及分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
vue onmounted周期里获取不到dom的原因
在onmounted里可以获取到任意一个静态的dom,注意,这里说的是静态dom,对于动态dom,他是获取不到的
动态dom有2种情况
1)带有v-if指令,获取不到值为false的那个dom
2)带有v-for指令,当初始化时,要循环的数组没有值,这个时候是获取不到相关dom的
重点:
有v-show指令时,即使值为false,依旧能获取到相应的dom,切记他和v-if不一样
解决方法
1)在nexttick中获取dom
2)在onUpdated中获取dom
vue3获取dom遇到的坑
项目前端引入manco.editor 的时候,如果要获取代码编辑器内的内容的话,需要使用toRaw获取源dom才可以获取到值。
比如getValue(),如果直接用editor.value去获取就会有问题。
以及v-if中的值在改变的时候会重新刷新组件以及重置dom。
v-show不会重置dom。所以选择使用。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。