Vue?3?中動態(tài)獲取高寬的思路詳解
應(yīng)用場景: 一般用于父組件動態(tài)變換寬高,子組件需要同步修改寬高
實現(xiàn)簡介 : Vue3 寫法
思路:
1.監(jiān)聽父組件的 寬高
2.將監(jiān)聽到的高度賦給 你需要設(shè)置的對象
:: 引入監(jiān)聽 并實現(xiàn) 如何得到動態(tài)寬度 (此時的 div2 會與 divDom 寬度會保持一致)
<template>
<div ref="divDom"></div> //你可以手動或者換成可拖拉伸縮的盒子
<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>一些補充的知識
1、了解 如何獲取組件的對象
<template>
<div ref="divDom"></div>
</template>
第一種 獲取方式
<script setup>
import { ref, getCurrentInstance } from 'vue';
const divDom = ref(null);
onMounted(()=>{
console.log('獲取dom元素',divDom)
})
// 獲取頁面的實例對象
const pageInstance = getCurrentInstance();
// 獲取dom節(jié)點對象
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 中動態(tài)獲取高寬的文章就介紹到這了,更多相關(guān)vue3動態(tài)獲取高寬內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue+element?tree懶加載更新數(shù)據(jù)的示例代碼
這篇文章主要介紹了vue+element?tree懶加載更新數(shù)據(jù),文中給大家補充介紹了Vue Element Ui 樹形表懶加載新增、修改、刪除等操作后局部數(shù)據(jù)更新的詳細代碼,感興趣的朋友跟隨小編一起看看吧2022-09-09
Vue+FormData+axios實現(xiàn)圖片上傳功能的項目實戰(zhàn)
本文主要介紹了Vue+FormData+axios實現(xiàn)圖片上傳功能的項目實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2023-06-06
vue react中的excel導(dǎo)入和導(dǎo)出功能
當我們把信息化系統(tǒng)給用戶使用時,用戶經(jīng)常需要把以前在excel里錄入的數(shù)據(jù)導(dǎo)入的信息化系統(tǒng)里,這樣為用戶提供了很大的方便,這篇文章主要介紹了vue中或者react中的excel導(dǎo)入和導(dǎo)出,需要的朋友可以參考下2023-09-09
vue3網(wǎng)絡(luò)請求添加loading過程
這篇文章主要介紹了vue3網(wǎng)絡(luò)請求添加loading過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08

