vue中在mounted使用$refs获取不到DOM元素

05-30 1374阅读

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元素

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]