美文网首页
关于vue mounted钩子里能不能获取dom的问题

关于vue mounted钩子里能不能获取dom的问题

作者: 变量只提升声明不提升赋值 | 来源:发表于2022-01-06 10:00 被阅读0次

    大家都知道mounted声明周期是发生在dom挂载完成之后,所以理论上是可以获取到dom元素的

        mounted() {
          console.log(this.$refs.test)
        },
    
    image.png

    但是有一些特殊情况下,是没办法在mounted中直接获取到都dom元素的。
    例如,dom是一个v-if判断展示与否的元素时,如果我们在mounted里使判断条件成立,那么此时打印这个dom元素会是undefined。
    这个时候就需要使用异步操作来获取。

       mounted() {
          this.loading =true
    方案一:
    setTimeout(()=>{
            console.log(this.$refs.test)
          },0)
    方案二:
          this.$nextTick(()=>{
            console.log(this.$refs.test)
          })
        },
    

    相关文章

      网友评论

          本文标题:关于vue mounted钩子里能不能获取dom的问题

          本文链接:https://www.haomeiwen.com/subject/kkvlcrtx.html