欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue3監(jiān)聽resize窗口事件(離開頁面要銷毀窗口事件)

 更新時間:2023年11月02日 11:15:56   作者:淺淺一笑^*^  
這篇文章主要給大家介紹了關于vue3監(jiān)聽resize窗口事件(離開頁面要銷毀窗口事件)的相關資料,vue是單頁面應用,路由切換后,定時器并不會自動關閉,需要手動清除,當頁面被銷毀時,清除定時器即可,需要的朋友可以參考下

resize事件:

resize事件是改變窗口大小時發(fā)生的事件,可以在窗口開啟、最大化、最小化、窗口大小改變(如拖拉改變窗口大小、move語句改變窗口大小、改變width或height屬性以改變窗口大?。r發(fā)生。

1.監(jiān)聽瀏覽器窗口變化,實時獲取該窗口的寬度和高度

//封裝getWindowInfo()方法
const getWindowInfo = () => {
	const windowInfo = {
		width: window.innerWidth,
		hight: window.innerHeight
	}
	console.log(windowInfo);
};

2.監(jiān)聽 resize 事件

//通過window監(jiān)聽
window.addEventListener('resize', getWindowInfo);
//缺點是會頻繁觸發(fā)這個事件,造成頁面卡頓,優(yōu)化的方法使用防抖或節(jié)流。

//優(yōu)化后的方法:

防抖debounce:在事件觸發(fā)n秒后再執(zhí)行,如果在n秒內又有新的觸發(fā),就重新計算

節(jié)流throttle:連續(xù)事件觸發(fā),在指定的時間內,不管觸發(fā)幾次,就只執(zhí)行一次

//使用防抖 (setTimeout定時器)
const getWindowInfo = () => {
	const windowInfo = {
		width: window.innerWidth,
		hight: window.innerHeight
	}
};
const debounce = (fn, delay) => {
	let timer;
	return function() {
		if (timer) {
			clearTimeout(timer);
		}
		timer = setTimeout(() => {
			fn();
		}, delay);
	}
};
//觸發(fā)事件    觸發(fā)時間(指定時間內執(zhí)行事件)
const cancalDebounce = debounce(getWindowInfo, 500);
window.addEventListener('resize', cancalDebounce);
//vue3 使用生命周期銷毀鉤子
  onUnmounted(() => {
        console.log('onUnmounted','打印是否生效');
        //移除監(jiān)聽事件
        window.removeEventListener('resize', cancalDebounce);
   })

vue2和vue3的生命周期如下:

在這里插入圖片描述

vue3使用生命周期鉤子例子:

<script>
import { onMounted } from 'vue'  // 首先需要通過組合式API的方式把聲明周期鉤子引入項目

  export default {
    setup() {
      onMounted(() => {   // 在 setup 函數中,使用箭頭函數的方式使用。
        console.log('onMounted')
      })
    },
  }
</script>

vue3 生命周期執(zhí)行順序:

<template>
  <div>
    <h1>content : {{num}}</h1>
    <el-button type="primary" @click="num++">num++</el-button>
  </div>
</template>
<script>
  import { onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted, onErrorCaptured, ref } from 'vue'
  export default {
    setup() {
      const num = ref(0)
      onBeforeMount(() => {
        console.log('onBeforeMount')
      })
      onMounted(() => {
        console.log('onMounted')
      })
      onBeforeUpdate(() => {
        console.log('onBeforeUpdate')
      })
      onUpdated(() => {
        console.log('onUpdated')
      })
      onBeforeUnmount(() => {
        console.log('onBeforeUnmount')
      })
      onUnmounted(() => {
        console.log('onUnmounted')
      })
      onErrorCaptured(() => {
        console.log('onErrorCaptured')
      })
      console.log('setup執(zhí)行了')
      return { num }
    },
  }
</script>
<style scoped>
</style>

總結 

到此這篇關于vue3監(jiān)聽resize窗口事件(離開頁面要銷毀窗口事件)的文章就介紹到這了,更多相關vue3監(jiān)聽resize窗口事件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue狀態(tài)管理工具Vuex工作原理解析

    Vue狀態(tài)管理工具Vuex工作原理解析

    Vuex是一個專為Vue.js應用程序開發(fā)的狀態(tài)管理模式,下面這篇文章主要給大家介紹了關于Vue中狀態(tài)管理器(vuex)詳解以及實際應用場景的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • vue3中getCurrentInstance獲取組件實例踩坑詳細記錄

    vue3中getCurrentInstance獲取組件實例踩坑詳細記錄

    getCurrentInstance()是Vue.js3?Composition?API中的一個函數,它的作用是獲取當前組件的實例對象,下面這篇文章主要給大家介紹了關于vue3中getCurrentInstance獲取組件踩坑的相關資料,需要的朋友可以參考下
    2024-02-02
  • Vue3模板引用的操作方式示例詳解

    Vue3模板引用的操作方式示例詳解

    這篇文章主要為大家介紹了Vue3模板引用的操作方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 前端項目vue3/React如何使用pako庫解壓縮后端返回gzip數據

    前端項目vue3/React如何使用pako庫解壓縮后端返回gzip數據

    pako是一個流行的JS庫,用于在瀏覽器中進行數據壓縮和解壓縮操作,它提供了對常見的壓縮算法的實現,使開發(fā)者能夠在客戶端上輕松進行數據壓縮和解壓縮,這篇文章主要介紹了前端項目vue3/React使用pako庫解壓縮后端返回gzip數據,需要的朋友可以參考下
    2024-07-07
  • vue3+element-plus暗黑模式切換動畫圓弧過渡效果

    vue3+element-plus暗黑模式切換動畫圓弧過渡效果

    文章介紹了如何在Vue 3和Element Plus中實現暗黑模式的切換,并通過動畫和圓弧過渡效果提升用戶體驗,本文給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2025-01-01
  • Vue.js每天必學之表單控件綁定

    Vue.js每天必學之表單控件綁定

    Vue.js每天必學之表單控件綁定,如何在表單控件元素上創(chuàng)建雙向數據綁定,感興趣的小伙伴們可以參考一下
    2016-09-09
  • vue 防止頁面加載時看到花括號的解決操作

    vue 防止頁面加載時看到花括號的解決操作

    這篇文章主要介紹了vue 防止頁面加載時看到花括號的解決操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue-element-admin中node-sass換成dart-sass,安裝依賴報code?128多種問題的解決方法

    vue-element-admin中node-sass換成dart-sass,安裝依賴報code?128多種問題的解決

    這篇文章主要介紹了vue-element-admin中node-sass換成dart-sass,安裝依賴報code?128多種問題的解決方法,本文給大家分享問題原因分析及解決方法,需要的朋友可以參考下
    2023-02-02
  • vue3中的hooks總結

    vue3中的hooks總結

    這篇文章主要介紹了vue3中的hooks總結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • vue+elementui通用彈窗的實現(新增+編輯)

    vue+elementui通用彈窗的實現(新增+編輯)

    這篇文章主要介紹了vue+elementui通用彈窗的實現(新增+編輯),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01

最新評論