在vue3里面使用ref获取elementPuls里面的组件元素失效

在vue3里面使用ref获取elementPuls里面的组件元素,发现获取到的值没有DOM元素,只有他提供的几个方法

img


想问下想要获取element的组件元素有什么办法?

直接使用$el可以获取,只是直接打印没有显示这个属性,不知道为啥

小魔女参考了bing和GPT部分内容调写:
在vue3中,要获取elementPuls里面的组件元素,可以使用ref属性,但是需要注意的是,ref属性拿到的不是DOM元素,而是一个组件实例,可以通过这个实例调用elementPuls提供的方法。

比如,要获取elementPuls里面的el-button组件,可以这样:

<template>
  <el-button ref="btn">按钮</el-button>
</template>

<script>
export default {
  data() {
    return {
    };
  },
  methods: {
    getBtn(){
      // 获取el-button组件实例
      let btn = this.$refs.btn;
      // 调用elementPuls提供的方法
      btn.setDisabled(true);
    }
  }
};
</script>

通过ref属性,可以获取到elementPuls里面的组件实例,然后就可以调用elementPuls提供的方法,来实现对组件的操作。
回答不易,记得采纳呀。

我使用的是setup语法,没有this的,有什么办法可以获取吗?element组件上的方法可以获取到,但是没有直接拿到DOM元素的api

<template>
  <div>
    <div ref="myDiv">这是一个 div 元素</div>
  </div>
</template>


import { ref, onMounted } from 'vue';
export default {
  setup() {
    const myDiv = ref(null);
    onMounted(() => {
      console.log(myDiv.value); // 输出 <div>...</div>
    });
    return {
      myDiv
    };
  }
}