vue3獲取元素并且修改元素樣式的實戰(zhàn)操作
需求:獲取元素的樣式并且修改元素樣式
主要應用場景:點擊元素后樣式變化
在項目開發(fā)中,經(jīng)常會遇到一些改變樣式的操作,不同于一般點擊進行數(shù)字的變化,對樣式的改變需要獲取元素的style,筆者瀏覽了目前論壇上的些許文章,大部分都是基于vue2的操作,本篇博客敘述在vue3的條件下進行獲取元素并修改樣式,主要涉及的API有ref和nextTick
操作主要分為如下幾個部分,文章最后附完整的代碼框架
①在要操作的元素上綁定ref
<div ref='div' style='width:'50px'>
②在script部分導入ref和nextTick
import { ref,nextTick} from 'vue'
③在script部分使得要操作的元素響應式即綁定ref
const div = ref()
④利用async await和nextTick
//需要在元素綁定函數(shù)a 這里忽略
async function a () {
await nextTick()
div.value.style.width="100px"
難點是在于為什么要使用async await和nextTick
如果不這樣使用的話,會報錯:parameter 1 is not of type ‘Element’
這個報錯的原因大意是操作者在操作還沒渲染的元素,或者說是想要操作的樣式還沒有對應的元素出現(xiàn)
那我們學習了vue3之后,懂得在nextTick后Dom已經(jīng)更新,所以通過結合async await和nextTick可以使得元素在渲染過后進行有效的修改
下圖來自vue3官方文檔

完整操作示例代碼:
<template>
<div ref='div' style='width:'50px'>
</template>
<script setup>
import { ref,nextTick} from 'vue'
const div = ref()
async function a () {
await nextTick()
div.value.style.width="100px"
}
</script>
總結
到此這篇關于vue3獲取元素并且修改元素樣式的文章就介紹到這了,更多相關vue3獲取元素并修改樣式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vuejs實現(xiàn)本地數(shù)據(jù)的篩選分頁功能思路詳解
今天做項目需要一份根據(jù)本地數(shù)據(jù)的篩選分頁功能,下面小編把vuejs實現(xiàn)本地數(shù)據(jù)的篩選分頁功能的實現(xiàn)思路分享到腳本之家平臺,需要的朋友可以參考下2017-11-11
關于vue中hash和history的區(qū)別與使用圖文詳解
vue-router中有hash模式和history模式,下面這篇文章主要給大家介紹了關于vue中hash和history的區(qū)別與使用的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-03-03

