首页 > 其他分享 >vue 获取 DOM 元素的方法

vue 获取 DOM 元素的方法

时间:2023-02-02 12:12:43浏览次数:48  
标签:vue DOM 对象 refs 获取 实例 组件

1 .原生js获取 DOM 节点

document.querySelector(选择器)
document.getElementById(id选择器)
document.getElementsByClassName(class选择器)
....

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

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

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

<template>
  <div class="box">
    <h1 ref="divDom">这是一个测试样例</h1>
    <button ref="but">按钮</button>
  </div>
</template>
 
<script>
 
export default {
  data() {
    return {
    }
  },
  methods: {
    showThis(){
      // h1的实例对象 
      console.log(this);
      this.$refs.divDom.style.color='yellow'
      //引用到组件的实例之后,也可以调用组件上的 methods方法
      this.$refs.but.click();
    },
  },
}
</script>

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

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

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

<template>
    <div ref="divDom"></div>
</template>
 
<script setup>
    import { ref, getCurrentInstance } from 'vue';
    
    const divDom = ref(null);
    onMounted(()=>{
        console.log('获取dom元素',divDom)
    })
 
    // 获取页面的实例对象
    const pageInstance = getCurrentInstance();
    // 获取dom节点对象
    const tagDomObj = pageInstance.refs.divDom;
 
</script> 

本文转载自 https://blog.csdn.net/m0_62811051/article/details/128121082

标签:vue,DOM,对象,refs,获取,实例,组件
From: https://www.cnblogs.com/beileixinqing/p/17085587.html

相关文章

  • 快速上手vue前端存储库、全局状态管理工具pinia
    pinia是什么,为什么我们要使用pinia?pinia是vue全局状态管理工具,类似vueX,用于全局的数据状态存储、修改变更等等相较于vueX,pinia的使用较为简单,轻量级,上手容易,干掉了vue......
  • 获取地址最后一个值
    functiongetCaption(url,parameter){varindex=url.lastIndexOf(parameter);url=url.substring(index+1,url.length);retu......
  • 总结了 Vue3 的七种组件通信方式,别再说不会组件通信了
    总结了Vue3的七种组件通信方式,别再说不会组件通信了播报文章网格化软件高品伟业2022-04-1916:35山东关注 写在前面  本篇文章是全部采用的......
  • QT修改、获取系统时间,以及设置日期
    设置系统时间:QStringm="date-s"2007-08-0314:15:00""QProcess::startDetached(m);//0312表示3月12日,1025表示当前时分QProcess::startDetached("hwclock-w");/......
  • vue-plugin-hiprint
    vue-plugin-hiprint(基于hiprint2.5.4)当时只是为了方便我(并非hiprint原作者)在vue项目中引入使用,所以以此命名。此插件仅仅是一个JavaScript【工具库】而非Vue【组件库......
  • 究竟什么是Shadow DOM?
    shadowdom是什么?顾名思义,shadowdom直译的话就是影子dom,但我更愿把它理解为DOM中的DOM。因为他能够为Web组件中的DOM和CSS提供了封装,实际上是在浏览器渲染文档的时候......
  • es获取basic license
    #获取临时licensecurl-XPOST"http://elasticsearch:9200/_license/start_basic?acknowledge=true"#查看license是否注册curl-XGET-uuser:password'http://hadoop101:9......
  • ts找不到 ./APP.vue
    在使用vue3+ts中遇到如下问题解决方法:查看跟App.vue同级目录有没有env.d.ts文件,如果有则给里面添加以下代码declaremodule"*.vue"{importtype{DefineComp......
  • jdk的keytool生成jks和获取jks的信息,公匙
     1.生成jks。执行命令:keytool-genkeypair-aliasmytest-keyalg RSA-keypassmypass-keystoremytest.jks-storepassmypass-keystorejks文件保存路径生成......
  • 最好用的 6 款 Vue 拖拽组件库推荐
    Vue拖拽组件库(drag-and-drop)组件在使用Vue框架开发中非常常见的需求,做个内容行排序,拖拽小组件到网页上这类都需要用到拖拽组件。本文记录了我自己用过的6款Vue拖拽......