Vue3获取DOM节点的方式有哪些

前端开发   发布日期:2023年07月02日   浏览次数:478

这篇文章主要讲解了“Vue3获取DOM节点的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue3获取DOM节点的方式有哪些”吧!

1 .原生js获取 DOM 节点:

  1. document.querySelector(选择器)
  2. document.getElementById(id选择器)
  3. document.getElementsByClassName(class选择器)
  4. ....

2. vue2中获取当前组件的实例对象:

因为每个 vue 的组件实例上,都包含一个 $refs 对象,里面存储着对应的 DOM 元素或组件的引用。所以在默认情况下, 组件的 $refs 指向一个空对象 。

可以先在组件上加上 ref="名字" ,然后通过 this.$refs.名字 获取相应元素并进行操作。

  1. <template>
  2. <div class="box">
  3. <h2 ref="divDom">这是一个测试样例</h2>
  4. <button ref="but">按钮</button>
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. data() {
  10. return {
  11. }
  12. },
  13. methods: {
  14. showThis(){
  15. // h2的实例对象
  16. console.log(this);
  17. this.$refs.divDom.style.color='yellow'
  18. //引用到组件的实例之后,也可以调用组件上的 methods方法
  19. this.$refs.but.click();
  20. },
  21. },
  22. }
  23. </script>

3.vue3中获取当前组件的实例对象:

在Vue3框架里面是解除了this这个对象,所以无法使用this.$refs的方式获取自定义组件 ref 的DOM节点。

但是vue3中自带了能返回当前组件实例对象的函数 getCurrentInstance,通过该函数获取对象节能看到该对象包含界面中的refs。

  1. <template>
  2. <div ref="divDom"></div>
  3. </template>
  4. <script setup>
  5. import { ref, getCurrentInstance } from 'vue';
  6. const divDom = ref(null);
  7. onMounted(()=>{
  8. console.log('获取dom元素',divDom)
  9. })
  10. // 获取页面的实例对象
  11. const pageInstance = getCurrentInstance();
  12. // 获取dom节点对象
  13. const tagDomObj = pageInstance.refs.divDom;
  14. </script>

以上就是Vue3获取DOM节点的方式有哪些的详细内容,更多关于Vue3获取DOM节点的方式有哪些的资料请关注九品源码其它相关文章!