首页 前端知识 Vue3 Ts 获取dom

Vue3 Ts 获取dom

2024-04-21 10:04:31 前端知识 前端哥 764 280 我要收藏

在vue2中我们通常 this.$refs 来获取DOM元素,但是在vue3中,setup并没有通过各种方式去绑定this,所以我们需要通过别的方法来进行获取。

1.在DOM中,ref的使用方法和vue2相同。

<div class="score-panel">
       <div>SCORE:<span class="score" ref="scoreSpan">0</span></div>
       <div>LEVEL:<span class="score" ref="levelSpan">1</span></div>
     </div>

2.在script中,可以使用getCurrentInstance配合来获取DOM(注意:不能在onMounted()之外直接使用

<script lang="ts" setup>
import { ref, onMounted, getCurrentInstance } from "vue";
import { ScorePanel } from "@/type/sneak";
let refs = null;
onMounted(() => {
  let { $refs } = (getCurrentInstance() as any).proxy; 
  // 你可以打印一下(getCurrentInstance() as any)会在 proxy 中发现 $refs
  refs = $refs;
  const scoreSpan = refs.scoreSpan; // 使用refs获取dom
  const levelSpan = refs.levelSpan;
  //下面这是我实例化了一个ScorePanel类,并将获取的DOM传了过去
  const scorePanel = new ScorePanel(scoreSpan, levelSpan) 
  console.log(scorePanel);
});

</script>

这样,我们就能用refs来获取dom了

3.或者你也可以在onMounted中直接使用 **document.getElementById(“元素id”)**也能拿到对应的dom。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/5597.html
标签
评论
发布的文章

CSS(8)空间转换 动画

2024-04-29 12:04:29

CSS介绍(4)--背景属性

2024-04-29 12:04:26

Web学习记录---CSS(1)

2024-04-29 12:04:17

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!