Vue3使用ref解决GetElementById为空的问题
更新时间:2023年12月04日 11:07:30 作者:程序员正茂
今天遇到一个问题,就是在Vue3组件中需要获取template中的元素节点,使用GetElementById返回的却是null,网上查找了好些资料,才发需要使用ref,所以本文给大家介绍了Vue3组件中如何使用ref解决GetElementById为空的问题,需要的朋友可以参考下
1.Vue3 中 ref 访问单个元素
<template> <div ref="hello">我爱北京天安门</div> </template> <script setup lang="ts"> import { onMounted, ref } from "vue"; const hello = ref<any>(null); onMounted(() => { console.log(hello.value); // <div>我爱北京天安门</div> }); </script>
注意:
- 变量名称必须要与 ref 命名的属性名称一致。
- 通过 hello.value 的形式获取 DOM 元素。
- 必须要在 DOM 渲染完成后才可以获取 hello.value,否则就是 null。
2.Vue3 中 ref 访问v-for元素
<template> <ul> <li v-for="item in 10" ref="itemRefs"> <p>{{item}} - 同学</p> </li> </ul> </template> <script setup lang="ts"> import { onMounted, ref } from "vue"; const itemRefs = ref<any>([]); onMounted(() => { console.log(itemRefs.value); }); </script>
注意,这里取到的是<li>元素节点,要取到<p>,则需要从childNodes中获取
itemRefs.value[i].childNodes[0]
到此这篇关于Vue3使用ref解决GetElementById为空的问题的文章就介绍到这了,更多相关Vue3 ref解决GetElementById为空内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
使用vue插件axios传数据的Content-Type及格式问题详解
这篇文章主要介绍了使用vue插件axios传数据的Content-Type以及格式问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-09-09vue的ElementUI form表单如何给label属性字符串中添加空白占位符
这篇文章主要介绍了vue的ElementUI form表单如何给label属性字符串中添加空白占位符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-10-10
最新评论