vue3中RouterView配合KeepAlive實現組件緩存

KeepAlive組件緩存

  • 為什么需要組件緩存
  • 代碼展示
  • 緩存效果
  • 為什么不用v-if

為什么需要組件緩存

業務需求:一般是列表頁面通過路由跳轉到詳情頁,跳轉回來時,需要列表頁面展示上次展示的內容

代碼展示

App.vue入口

<script setup lang="ts">
import { RouterView, RouterLink } from "vue-router"
</script><template><div><RouterLink to="/">home</RouterLink><RouterLink to="/about">about</RouterLink></div><div><RouterView v-slot="{ Component }">// AboutComponent是組件的名稱,vue4組件中通過defineOptions定義<KeepAlive include="AboutComponent"><component :is="Component" /></KeepAlive></RouterView></div>
</template>

home.vue組件

<template><div>home</div>
</template><script setup lang="ts">
import { onMounted } from "vue"
defineOptions({name: "HomeComponent",
})
onMounted(() => {console.log("home onMounted")
})
</script>

about.vue組件

<template><div>about</div>
</template><script setup lang="ts">
import { onMounted } from "vue"
defineOptions({name: "AboutComponent",
})
onMounted(() => {console.log("about onMounted")
})
</script>

緩存效果

1、home和about組件首次加載都會執行onMounted生命周期,但是對about組件進行了緩存,再次切換到about組件,就不會重新初始化,就不會執行onMounted生命周期。
2、keepalive使用include和exclude實現緩存的好處是:只要被緩存的組件首次加載之后,無論在緩存組件之間切換,還是緩存組件與未緩存組件之間切換,都不會重新掛載。

為什么不用v-if

網絡上經常使用就是如下代碼:

<keep-alive><router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view> 

雖然也能實現頁面緩存,但是從非緩存組件切換到緩存組件時,會重新掛載緩存組件,從而再次執行onMounted生命周期,只有在兩個同樣是緩存的組件之間切換才會有實際的緩存效果

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/81944.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/81944.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/81944.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【JAVA】比較器Comparator與自然排序(28)

JAVA 核心知識點詳細解釋 Java中比較器Comparator的概念和使用方法 概念 Comparator 是 Java 中的一個函數式接口,位于 java.util 包下。它用于定義對象之間的比較規則,允許我們根據自定義的邏輯對對象進行排序。與對象的自然排序(實現 Comparable 接口)不同,Comparat…

浪潮服務器配置RAID和JBOD

目錄 1 配置RAID2 設置硬盤為JBOD模式3 驗證結果 1 配置RAID 進入 bios 界面 選擇 “高級” - “UEFI-HII配置” 選擇 raid 卡 進入 Main Menu 點擊 Driver Management&#xff0c;可以查詢當前硬盤 返回上一級&#xff0c;點擊 Configuration Management - Create virtu…

mongodb管理工具的使用

環境&#xff1a; 遠程服務器的操作系統&#xff1a;centOS stream 9; mongoDB version:8.0; 本地電腦 navicat premium 17.2 ; 寶塔上安裝了mongoDB 目的&#xff1a;通過本地的navicat鏈接mongoDB,如何打通鏈接&#xff0c;分2步&#xff1a; 第一步&#xff1a;寶塔-&…

03-Web后端基礎(Maven基礎)

1. 初始Maven 1.1 介紹 Maven 是一款用于管理和構建Java項目的工具&#xff0c;是Apache旗下的一個開源項目 。 Apache 軟件基金會&#xff0c;成立于1999年7月&#xff0c;是目前世界上最大的最受歡迎的開源軟件基金會&#xff0c;也是一個專門為支持開源項目而生的非盈利性…

實景VR展廳制作流程與眾趣科技實景VR展廳應用

實景VR展廳制作是一種利用虛擬現實技術將現實世界中的展覽空間數字化并在線上重現的技術。 這種技術通過三維重建和掃描等手段&#xff0c;將線下展館的場景、展品和信息以三維形式搬到云端數字空間&#xff0c;從而實現更加直觀、立體的展示效果。在制作過程中&#xff0c;首…

Python爬蟲實戰:獲取天氣網最近一周北京的天氣數據,為日常出行做參考

1. 引言 隨著互聯網技術的發展,氣象數據的獲取與分析已成為智慧城市建設的重要組成部分。天氣網作為權威的氣象信息發布平臺,其數據具有較高的準確性和實時性。然而,人工獲取和分析天氣數據效率低下,無法滿足用戶對精細化、個性化氣象服務的需求。本文設計并實現了一套完整…

幾種超聲波芯片的特點和對比

一 CX20106A ZIP - 8 CX20106A ZIP - 8 的核心競爭力在于高性價比、易用性和抗光干擾能力&#xff0c;尤其適合消費電子、短距離工業檢測和低成本物聯網場景。盡管在距離和精度上不及高端芯片&#xff0c;但其成熟的電路方案和廣泛的市場應用&#xff08;如經典紅外遙控升級為超…

利用ffmpeg截圖和生成gif

從視頻中截取指定數量的圖片 ffmpeg -i input.mp4 -ss 00:00:10 -vframes 1 output.jpgffmpeg -i input.mp4 -ss 00:00:10 -vframes 180 output.jpg -vframes 180代表截取180幀, 實測后發現如果視頻是60fps,那么會從第10秒截取到第13秒-i input.mp4&#xff1a;指定輸入視頻文…

系統架構設計師案例分析題——數據庫緩存篇

一.核心知識 1.redis和MySQL的同步方案怎么做的&#xff1f; 讀數據&#xff1a;先查詢緩存&#xff0c;緩存不存在則查詢數據庫&#xff0c;然后將數據新增到緩存中寫數據&#xff1a;新增時&#xff0c;先新增數據庫&#xff0c;數據庫成功后再新增緩存&#xff1b;更新和刪…

什么是智能體?

什么是智能體&#xff1f; 智能體&#xff08;AI Agent&#xff09;是一種能夠自主感知環境、做出決策并執行任務的智能實體&#xff0c;其核心依賴大型語言模型&#xff08;LLM&#xff09;或深度學習算法作為“大腦”模塊。它通過感知模塊&#xff08;如多模態輸入&#xff…

企業數字化轉型是否已由信息化+自動化向智能化邁進?

DeepSeek引發的AI熱潮迅速蔓延到了各個行業&#xff0c;目前接入DeepSeek的企業&#xff0c;涵蓋了科技互聯網、云服務、電信、金融、能源、汽車、手機等熱門領域&#xff0c;甚至全國各地政府機構也紛紛引入。 在 DeepSeek 等國產 AI 技術的推動下&#xff0c;眾多企業已經敏銳…

廣州卓遠VR受邀參加2025智能體育典型案例調研活動,并入駐國體華為運動健康聯合實驗室!

近日&#xff0c;“2025年智能體育典型案例調研活動”在東莞松山湖成功舉辦。本次調研活動由國家體育總局體育科學研究所和中國信息通信研究院聯合主辦&#xff0c;旨在深入貫徹中央關于培育新型消費的戰略部署&#xff0c;通過激活智能健身產品消費潛力&#xff0c;加快運動健…

springboot+vue實現鮮花商城系統源碼(帶用戶協同過濾個性化推薦算法)

今天教大家如何設計一個 鮮花商城 , 基于目前主流的技術&#xff1a;前端vue3&#xff0c;后端springboot。學習完這個項目&#xff0c;你將來找工作開發實際項目都會又很大幫助。文章最后部分還帶來的項目的部署教程。 系統有著基于用戶的協同過濾推薦算法&#xff0c;還有保證…

【android bluetooth 協議分析 02】【bluetooth hal 層詳解 3】【高通藍牙hal主要流程介紹-上】

1. 背景 本節主要討論 高通 藍牙 hal 中&#xff0c;的一些流程。 看看你是否都清楚如下問題&#xff1a; 高通芯片電如何控制&#xff1f;串口是在哪里控制的&#xff1f;固件如何下載&#xff1f;初始化流程是怎么樣的&#xff1f; 如果你已經對上述討論的問題&#xff0c…

JavaEE 初階文件操作與 IO 詳解

一、文件操作基礎&#xff1a;File 類 作用&#xff1a;操作文件或目錄&#xff08;創建、刪除、獲取信息&#xff09;。 核心方法&#xff1a; exists()&#xff1a;文件是否存在createNewFile()&#xff1a;創建新文件mkdir()&#xff1a;創建目錄delete()&#xff1a;刪除…

C++(27): 標準庫 <iterator>

目錄 1. 核心概念 2. 基本語法 3. 特點 4. 特有成員函數與工具 5. 內存與性能 6. 示例代碼 7. 成員函數與類型 8. 使用場景 9. 注意事項 1. 核心概念 迭代器(Iterator) 是 C++ 中用于訪問和遍歷容器元素的通用接口,類似于指針,但支持更豐富的操作。 抽象訪問機制:…

談談 Kotlin 中的構造方法,有哪些注意事項?

在 Kotlin 中&#xff0c;構造方法分為主構造方法&#xff08;Primary Constructor&#xff09;和次構造方法&#xff08;Secondary Constructor&#xff09;。 1 主構造方法 主構造方法是類的核心構造方法&#xff0c;直接在類頭聲明&#xff0c;位于類名之后。 1.1 基本語…

年會招標抽獎活動軟件———仙盟創夢IDE

年會是企業一年的總結與歡慶時刻&#xff0c;而抽獎環節更是點燃全場氣氛的關鍵。如何讓抽獎環節既大氣又充滿儀式感&#xff1f;選對抽獎軟件至關重要&#xff01;本文精心挑選了 3 款兼具實用性與氛圍感的年會抽獎軟件&#xff0c;從界面設計到功能特色&#xff0c;全方位為你…

安全軟件檢測進程異常行為-Postgresql應用執行異常指令whoami

文章目錄 環境癥狀問題原因解決方案 環境 系統平臺&#xff1a;UOS&#xff08;海光&#xff09; 版本&#xff1a;4.5.8 癥狀 數據庫安裝包&#xff1a; 安全軟件告警中提示“sh -c whoami”命令&#xff0c;是由數據庫發出的&#xff0c;安全軟件捕獲到了postgres.exe–fo…

車載診斷架構 --- LIN 節點 ECU 故障設計原則

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 鈍感力的“鈍”,不是木訥、遲鈍,而是直面困境的韌勁和耐力,是面對外界噪音的通透淡然。 生活中有兩種人,一種人格外在意別人的眼光;另一種人無論…