Vue?3?中動(dòng)態(tài)獲取高寬的思路詳解
應(yīng)用場(chǎng)景: 一般用于父組件動(dòng)態(tài)變換寬高,子組件需要同步修改寬高
實(shí)現(xiàn)簡(jiǎn)介 : Vue3 寫法
思路:
1.監(jiān)聽父組件的 寬高
2.將監(jiān)聽到的高度賦給 你需要設(shè)置的對(duì)象
:: 引入監(jiān)聽 并實(shí)現(xiàn) 如何得到動(dòng)態(tài)寬度 (此時(shí)的 div2 會(huì)與 divDom 寬度會(huì)保持一致)
<template>
<div ref="divDom"></div> //你可以手動(dòng)或者換成可拖拉伸縮的盒子
<div ref= "div2" :style="{'width':leftShowWith.with}"></div>
</template>
第一種 獲取方式
<script setup>
import {useResizeObserver} from "@vueuse/core";
const divDom =ref();
const leftShowWith = reactive({
with:'500px'
});
useResizeObserver(divDom , (entries) => {
const entry = entries[0]
const { width, height } = entry.contentRect
console.log(`width: ${width}, height: ${height}`)
console.log(`${width}px`)
leftShowWith.with = `${width}px`;
})
</script>一些補(bǔ)充的知識(shí)
1、了解 如何獲取組件的對(duì)象
<template>
<div ref="divDom"></div>
</template>
第一種 獲取方式
<script setup>
import { ref, getCurrentInstance } from 'vue';
const divDom = ref(null);
onMounted(()=>{
console.log('獲取dom元素',divDom)
})
// 獲取頁面的實(shí)例對(duì)象
const pageInstance = getCurrentInstance();
// 獲取dom節(jié)點(diǎn)對(duì)象
const tagDomObj = pageInstance.refs.divDom;
</script>
第一種 獲取方式
<script setup>
const divDom =ref();
</script>2、了解 如何獲取元素中的寬高
<div ref="init"></div> 寫在 頁面 方法 部分 這里的 offsetHeight 是返回元素的寬度(包括元素寬度、內(nèi)邊距和邊框,不包括外邊距) let height= this.$refs.init.$el.offsetHeight; let height= divDom.VALUE.$el.offsetHeight; // 在Vue3 中的寫法 這里的offsetHeight可以替換,用來獲取其他的屬性 offsetWidth //返回元素的寬度(包括元素寬度、內(nèi)邊距和邊框,不包括外邊距) offsetHeight //返回元素的高度(包括元素高度、內(nèi)邊距和邊框,不包括外邊距) clientWidth //返回元素的寬度(包括元素寬度、內(nèi)邊距,不包括邊框和外邊距) clientHeight //返回元素的高度(包括元素高度、內(nèi)邊距,不包括邊框和外邊距) style.width //返回元素的寬度(包括元素寬度,不包括內(nèi)邊距、邊框和外邊距) style.height //返回元素的高度(包括元素高度,不包括內(nèi)邊距、邊框和外邊距) scrollWidth //返回元素的寬度(包括元素寬度、內(nèi)邊距和溢出尺寸,不包括邊框和外邊距),無溢出的情況,與clientWidth相同 scrollHeigh //返回元素的高度(包括元素高度、內(nèi)邊距和溢出尺寸,不包括邊框和外邊距),無溢出的情況,與clientHeight相同 除此之外,還可以獲取帶有單位的數(shù)值 let height = window.getComputedStyle(this.$refs.init).height; 這樣獲取的值是有單位的。
到此這篇關(guān)于Vue 3 中動(dòng)態(tài)獲取高寬的文章就介紹到這了,更多相關(guān)vue3動(dòng)態(tài)獲取高寬內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue+element?tree懶加載更新數(shù)據(jù)的示例代碼
這篇文章主要介紹了vue+element?tree懶加載更新數(shù)據(jù),文中給大家補(bǔ)充介紹了Vue Element Ui 樹形表懶加載新增、修改、刪除等操作后局部數(shù)據(jù)更新的詳細(xì)代碼,感興趣的朋友跟隨小編一起看看吧2022-09-09
使用vue3實(shí)現(xiàn)數(shù)據(jù)漏斗圖
漏斗圖一般會(huì)借助一些第三方的庫來實(shí)現(xiàn),這些庫使用起來雖然簡(jiǎn)單順手,但是如果要定制樣式就會(huì)不太方便,本文我們就來用vue3手?jǐn)]一個(gè)漏斗圖吧2024-11-11
Vue+FormData+axios實(shí)現(xiàn)圖片上傳功能的項(xiàng)目實(shí)戰(zhàn)
本文主要介紹了Vue+FormData+axios實(shí)現(xiàn)圖片上傳功能的項(xiàng)目實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
vuejs使用$emit和$on進(jìn)行組件之間的傳值的示例
本篇文章主要介紹了vuejs使用$emit和$on進(jìn)行組件之間的傳值的示例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-10-10
Vue列表循環(huán)從指定下標(biāo)開始的多種解決方案
這篇文章主要介紹了Vue列表循環(huán)從指定下標(biāo)開始的多種方案,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
vue react中的excel導(dǎo)入和導(dǎo)出功能
當(dāng)我們把信息化系統(tǒng)給用戶使用時(shí),用戶經(jīng)常需要把以前在excel里錄入的數(shù)據(jù)導(dǎo)入的信息化系統(tǒng)里,這樣為用戶提供了很大的方便,這篇文章主要介紹了vue中或者react中的excel導(dǎo)入和導(dǎo)出,需要的朋友可以參考下2023-09-09
vue3網(wǎng)絡(luò)請(qǐng)求添加loading過程
這篇文章主要介紹了vue3網(wǎng)絡(luò)請(qǐng)求添加loading過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
Vue自定義指令學(xué)習(xí)及應(yīng)用詳解
這篇文章主要為大家詳細(xì)介紹了Vue中自定義指令的學(xué)習(xí)以及如何利用Vue制作一個(gè)簡(jiǎn)單的學(xué)生信息管理系統(tǒng),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05

