vue中實現(xiàn)在頁面縮小或擴大時重新渲染所有組件

1、監(jiān)聽 resize 事件:
使用 Vue 3 的組合式 API來監(jiān)聽 resize 事件。

2、使用 key 強制重新渲染組件:
通過改變組件的 key 值來強制重新渲染。

<template>
  <div :key="resizeKey">
    <!-- 你的組件內(nèi)容 -->
    <p>窗口大小改變時重新渲染</p>
  </div>
</template>

<script>
import { ref, onMounted, onUnmounted } from 'vue';

export default {
  setup() {
    const resizeKey = ref(0);

    const handleResize = () => {
      // 改變 key 值以觸發(fā)重新渲染
      resizeKey.value += 1;
    };

    onMounted(() => {
      window.addEventListener('resize', handleResize);
    });

    onUnmounted(() => {
      window.removeEventListener('resize', handleResize);
    });

    return {
      resizeKey
    };
  }
};
</script>

解釋
1、ref:使用 ref 創(chuàng)建一個響應(yīng)式變量 resizeKey,用于強制重新渲染。
2、handleResize:在 resize 事件觸發(fā)時,更新 resizeKey 的值。
3、onMounted 和 onUnmounted:在組件掛載時添加事件監(jiān)聽器,在組件卸載時移除事件監(jiān)聽器,以避免內(nèi)存泄漏。
4、:key 屬性:通過改變 key 值,Vue 會認(rèn)為這是一個新的組件實例,從而重新渲染。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容