43
Vue 3 學習之旅
高級特性
Day 43: 保持元件狀態:<KeepAlive>
·6 分鐘閱讀·KeepAlive
摘要
<KeepAlive>
是一個內建的包裝元件,它能將其內部被切換掉的動態元件「快取」在記憶體中,而不是銷毀它們。當元件再次被切換回來時,可以保持其離開時的狀態。
定義與說明
當動態元件(如使用 <component :is="...">
)在 <KeepAlive>
標籤內部被切換時,非作用中的元件實例會被保留,而不是被銷毀。這對於避免重複渲染、保留使用者輸入或滾動位置等場景非常有用。
實作範例
KeepAlive 示例
<!-- 在 Day 41 的範例基礎上,用 <KeepAlive> 包裝 -->
<template>
<button @click="currentTab = tabs.ComponentA">顯示 A</button>
<button @click="currentTab = tabs.ComponentB">顯示 B</button>
<!--
現在,當你在 A 元件的輸入框打字,然後切換到 B,再切換回 A,
你會發現 A 元件輸入框的內容依然存在。
-->
<KeepAlive>
<component :is="currentTab" />
</KeepAlive>
</template>
結論
<KeepAlive>
是一個用於效能優化和改善使用者體驗的強大工具。它透過快取元件實例,避免了不必要的重新渲染和狀態丟失。
KeepAlive 快取 狀態保持