你不知道的 Vue3 中获取 DOM 节点或组件实例还能这么玩
在 Vue 3 中,可以通过几种不同的方式获取 DOM 节点或组件实例。以下是一些示例:
- 使用
ref
属性获取 DOM 节点:
<template>
<div ref="divRef">Hello, Vue 3!</div>
</template>
<script>
import { ref, onMounted } from 'vue';
export default {
setup() {
const divRef = ref(null);
onMounted(() => {
console.log(divRef.value); // 这是 DOM 节点
});
return { divRef };
}
};
</script>
- 使用
ref
属性获取组件实例:
<template>
<MyComponent ref="myComponentRef" />
</template>
<script>
import { ref, onMounted } from 'vue';
import MyComponent from './MyComponent.vue';
export default {
components: {
MyComponent
},
setup() {
const myComponentRef = ref(null);
onMounted(() => {
console.log(myComponentRef.value); // 这是组件实例
});
return { myComponentRef };
}
};
</script>
- 使用
onMounted
钩子函数和document.querySelector
获取 DOM 节点:
<template>
<div>Hello, Vue 3!</div>
</template>
<script>
import { onMounted } from 'vue';
export default {
setup() {
onMounted(() => {
const div = document.querySelector('div');
console.log(div); // 这是 DOM 节点
});
}
};
</script>
以上代码展示了如何在 Vue 3 组件中获取 DOM 节点和组件实例的不同方法。使用 ref
是获取 DOM 和组件引用的标准方式,而 onMounted
钩子函数确保了获取操作在组件挂载后执行。
评论已关闭