Vue3使用ref解决GetElementById为空的问题
作者:程序员正茂
今天遇到一个问题,就是在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为空内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!