最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3頁面加載完成后如何獲取寬度、高度

 更新時間:2023年04月24日 09:32:23   作者:賺成美業(yè)  
這篇文章主要介紹了vue3頁面加載完成后如何獲取寬度、高度問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue3頁面加載完成后獲取寬度、高度

剛好H5項目有用到這個需求,頁面加載完成后獲取當前頁面高度,記錄一下。^_^

<template>
<div class="wrap" :style="{height:hHeight+'px'}">
</div>
</template>
<script lang='ts'>
import { defineComponent, reactive, nextTick, onMounted, toRefs } from "vue";
export default defineComponent({
  name: "Aboutus",
  setup() {
    let state = reactive({
      hHeight: 0,//頁面高度
    });
  onMounted(() => {
    nextTick(()=>{
        state.hHeight = document.documentElement.clientHeight;
        console.log(document.documentElement.clientHeight)
    })
  })
  return {
      ...toRefs(state)
  }
  },
});
</script>

用vue3.2版本的也可以用語法糖來處理,直接上代碼:

<template>
  <div class="wrap" :style="{height:state.hHeight+'px'}">
   </div>
</template>
<script setup>
import { reactive, nextTick } from "vue"
const state = reactive({
    hHeight: 0
})
nextTick(()=>{
     state.hHeight = document.documentElement.clientHeight;
     console.log(document.documentElement.clientHeight)
 })
</script>

親測可用,大家可以試試! 

 

vue3之vue3.2獲取dom元素的寬高

知識點:ref,nextTike

  • ref可以用于dom對象的獲取,以及創(chuàng)建一個響應式的普通對象類型
  • nextTick是一個函數(shù),它接受一個函數(shù)作為參數(shù),nextTick官網(wǎng)定義是‘將回調(diào)推遲到下一個 DOM 更新周期之后執(zhí)行’,

未使用nextTike

<!--
 * new page
 * @author: Blaine
 * @since: 2022-06-30
 * page_nextTike.vue
-->
<template>
  <div class="container" >
    <ul ref="myRef">
      <li v-for="(item, index) in pepleList" :key="index">{{ item }}</li>
    </ul>
    <button @click="addHandle">增加</button>
  </div>
</template>

<script setup lang="ts">
import { onMounted, reactive, ref, nextTick } from 'vue'
let pepleList = reactive<string[]>(['蜘蛛俠', '鋼鐵俠', '美國隊長'])
const myRef = ref<HTMLElement>();
onMounted(() => {
  console.log('列表的高度是:', myRef.value?.clientHeight)
})
const addHandle =  async() => {
  pepleList.push('閃電俠')
  // await nextTick()
  console.log('列表的高度是:', myRef.value?.clientHeight)
}
</script>

<style scoped>
</style>

**注意:**這里的list并沒有立即增加

問題在于我們改變list的值時,vue并不是立刻去更新dom,而是在一個事件循環(huán)最后再去更新dom,這樣可以避免不必要的計算和dom操作,對提高性能非常重要。

那么我們需要在dom更新完成后,再去獲取ul的高度,這時候就需要用到nextTick了,

使用ref+nextTick

<!--
 * new page
 * @author: Blaine
 * @since: 2022-06-30
 * page_nextTike.vue
-->
<template>
  <div class="container" >
    <ul ref="myRef">
      <li v-for="(item, index) in pepleList" :key="index">{{ item }}</li>
    </ul>
    <button @click="addHandle">增加</button>
  </div>
</template>

<script setup lang="ts">
import { onMounted, reactive, ref, nextTick } from 'vue'
let pepleList = reactive<string[]>(['蜘蛛俠', '鋼鐵俠', '美國隊長'])
const myRef = ref<HTMLElement>();
onMounted(() => {
  console.log('列表的高度是:', myRef.value?.clientHeight)
})
const addHandle =  async() => {
  pepleList.push('閃電俠')
  await nextTick()
  console.log('列表的高度是:', myRef.value?.clientHeight)
}
</script>

<style scoped>
</style>

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue+element實現(xiàn)批量刪除功能的示例

    vue+element實現(xiàn)批量刪除功能的示例

    下面小編就為大家分享一篇vue+element實現(xiàn)批量刪除功能的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Vue響應式原理及雙向數(shù)據(jù)綁定示例分析

    Vue響應式原理及雙向數(shù)據(jù)綁定示例分析

    這篇文章主要為大家介紹了Vue響應式原理及雙向數(shù)據(jù)綁定的示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Vue.js教程之a(chǎn)xios與網(wǎng)絡傳輸?shù)膶W習實踐

    Vue.js教程之a(chǎn)xios與網(wǎng)絡傳輸?shù)膶W習實踐

    這篇文章主要給大家介紹了Vue.js之a(chǎn)xios與網(wǎng)絡傳輸?shù)南嚓P(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟隨小編一起來學習學習吧。
    2017-04-04
  • vue3父子組件傳值?雙向綁定及注意問題小結(jié)

    vue3父子組件傳值?雙向綁定及注意問題小結(jié)

    這篇文章主要介紹了Vue3中如何通過v-model實現(xiàn)父子組件的雙向數(shù)據(jù)綁定及利用computed簡化父子組件雙向綁定,本文結(jié)合示例代碼給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • vue項目引入本地bootstrap不生效問題及解決

    vue項目引入本地bootstrap不生效問題及解決

    這篇文章主要介紹了vue項目引入本地bootstrap不生效問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue預覽圖片和視頻的幾種實現(xiàn)方式

    Vue預覽圖片和視頻的幾種實現(xiàn)方式

    本文主要介紹了Vue預覽圖片和視頻的幾種實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • vue懶加載和子組件懶加載的區(qū)別詳解

    vue懶加載和子組件懶加載的區(qū)別詳解

    這篇文章主要給大家介紹了vue懶加載和子組件懶加載有什么區(qū)別,Vue懶加載指的是對圖片等資源的延遲加載,而子組件懶加載則是指延遲加載組件實例,文中通過代碼示例給大家講解的非常詳細,需要的朋友可以參考下
    2023-12-12
  • iview同時驗證多個表單問題總結(jié)

    iview同時驗證多個表單問題總結(jié)

    這篇文章主要介紹了iview同時驗證多個表單問題總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • 使用Webpack提高Vue.js應用的方式匯總(四種)

    使用Webpack提高Vue.js應用的方式匯總(四種)

    Webpack是開發(fā)Vue.js單頁應用程序的重要工具。下面通過四種方式給大家介紹使用Webpack提高Vue.js應用,需要的的朋友參考下吧
    2017-07-07
  • vue中js判斷長時間不操作界面自動退出登錄(推薦)

    vue中js判斷長時間不操作界面自動退出登錄(推薦)

    這篇文章主要介紹了vue中js判斷長時間不操作界面自動退出登錄,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01

最新評論

济阳县| 资源县| 资中县| 吉林省| 衡阳市| 定结县| 霍州市| 四子王旗| 巴林左旗| 漠河县| 肇州县| 云和县| 闽侯县| 南京市| 定南县| 灌南县| 黑龙江省| 绥化市| 大宁县| 阿荣旗| 元朗区| 秦安县| 巴马| 开远市| 虞城县| 东港市| 九龙城区| 石渠县| 光泽县| 皮山县| 电白县| 萍乡市| 湾仔区| 怀集县| 临西县| 资阳市| 石楼县| 连州市| 安达市| 防城港市| 闽清县|