vue3中通過ref獲取元素節(jié)點的實現
通過ref獲取元素節(jié)點
ref 在vue2中可以說簡化js原生的document.getElementById("#id")操作 。當然在vue3中也一樣
首先,給你想獲取到的元素一個ref 屬性
然后,再將這個ref對象創(chuàng)建出來,就可以訪問到他的值
但是。這樣在setup 里邊可以訪問,但是直接打印出來的值為null........
由于 setup 函數的執(zhí)行時間要先于 html 標簽的渲染,所以我們不能直接在 setup 函數中初始化 box 標簽。
在生命周期函數中 setup 函數在 beforeCreate 和 Created 之間執(zhí)行
如果存在有初始化或類似的操作,需要借用 生命周期函數中的onMounted
這樣就可以訪問到了
獲取ref元素的幾種方式小結
1. 原生js獲取dom元素
document.querySelector(選擇器) document.getElementById(id選擇器) document.getElementsByClassName(class選擇器)
2. ref獲取單個dom元素
<template> ? ?<div ref='divDom'></div>? </template> <script setup> import { ref} from 'vue' const divDom = ref(null); onMounted(()=>{ ? ? console.log('獲取dom元素',divDom) })
3. ref獲取v-for循環(huán)中的dom元素
<template> ? ?<div ref='getDivDom' v-for="item in list" :data-id="item.id"></div>? </template> <script setup> import { ref} from 'vue' const divDomList = ref(new Map()); const getDivDom = el=>{ ? ? if(el){ ? ? ? ? divDomList.set(el.dataset['id'],el)? ? ? } } // const el =divDomList.get(id) // 根據list數據中的id值 獲取對應的dom元素?
4. 在swiper中獲取swiper的dom元素
<template> ? ?<swiper @swiper='getSwiper'></swiper >? </template> <script setup> import swiper from 'swiper' import { ref} from 'vue' const swiperDom= ref(null); const getSwiper= el=>{ ? ? swiperDom.value = el; }
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
使用axios請求時,發(fā)送formData請求的示例
今天小編就為大家分享一篇使用axios請求時,發(fā)送formData請求的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10