Vue百日學習計劃Day46-48天詳細計劃-Gemini版

Day 46: <KeepAlive> - 組件緩存與優化 (~3 小時)

  • 本日目標: 理解 <KeepAlive> 的作用,學會如何使用它來緩存組件實例,從而優化應用性能和用戶體驗。
  • 所需資源: Vue 3 官方文檔 (<KeepAlive>): https://cn.vuejs.org/guide/built-ins/keep-alive.html

學習計劃:

  • 番茄時鐘 1 (25 分鐘工作 + 5 分鐘休息):

    • 內容: <KeepAlive> 簡介及其目的。
    • 活動: 閱讀官方文檔中關于 <KeepAlive> 的介紹。理解為什么組件緩存是有益的,尤其是在頻繁切換組件(如標簽頁界面)的場景中,它能幫助我們保持組件狀態或避免昂貴的重新渲染。
    • 思考: <KeepAlive> 與簡單地使用 v-if 來顯示/隱藏組件有什么本質區別?
    • 休息: 短暫休息,放松一下。
  • 番茄時鐘 2 (25 分鐘工作 + 5 分鐘休息):

    • 內容: <KeepAlive> 與動態組件的基礎使用。
    • 活動: 設置一個簡單的父組件,使用 <component :is="currentComponent"> 來切換兩到三個簡單的子組件(例如 ComponentA.vue, ComponentB.vue)。在不使用 <KeepAlive> 的情況下,觀察它們在切換時的生命周期鉤子 (onMounted, onUnmounted) 在控制臺的輸出。
    • 實踐:<component :is="..."><KeepAlive> 包裹起來。再次觀察控制臺輸出。注意 onUnmounted 不再在切換時被調用。
    • 休息: 快速調整狀態。
  • 番茄時鐘 3 (25 分鐘工作 + 5 分鐘休息):

    • 內容: include, exclude, max 屬性。
    • 活動: 學習 includeexclude 屬性,它們通過組件的 name 屬性來控制哪些組件被緩存。理解 max 屬性用于限制緩存的實例數量。
    • 實踐: 修改你的 <KeepAlive> 配置,嘗試使用 include(例如,只緩存 ComponentA)。然后嘗試 exclude。如果你有多個組件,也可以實驗一下 max
    • 休息: 短暫放松。
  • 番茄時鐘 4 (25 分鐘工作 + 5 分鐘休息):

    • 內容: <KeepAlive> 相關的生命周期鉤子 (onActivated, onDeactivated)。
    • 活動: 閱讀 onActivatedonDeactivated 生命周期鉤子的相關內容。理解這些鉤子是專門為被 <KeepAlive> 包裹的組件設計的,并在緩存組件被激活/失活時觸發。
    • 實踐: 在你被緩存的子組件中添加 onActivatedonDeactivated 鉤子,并在其中打印日志信息。切換組件時,觀察控制臺輸出。
    • 休息: 補充水分。
  • 總結與回顧 (10-15 分鐘):

    • 回顧 <KeepAlive> 的核心作用和用法。
    • 確保你理解 include, exclude, max 屬性的工作方式。
    • 確認你理解了 onActivatedonDeactivated 鉤子的執行時機。

Day 47: <Teleport> - 瞬移組件內容 (~3 小時)

  • 本日目標: 學習如何使用 <Teleport> 將組件的內容渲染到 DOM 樹的不同位置,脫離組件自身的父子層級關系。
  • 所需資源: Vue 3 官方文檔 (<Teleport>): https://cn.vuejs.org/guide/built-ins/teleport.html

學習計劃:

  • 番茄時鐘 1 (25 分鐘工作 + 5 分鐘休息):

    • 內容: <Teleport> 簡介及其應用場景。
    • 活動: 閱讀官方文檔中關于 <Teleport> 的介紹。理解它在哪些場景下有用,比如模態框 (Modals)、通知 (Notifications) 或工具提示 (Tooltips),當你希望內容在視覺上位于其他所有內容之上(例如,直接在 <body> 標簽下),但在邏輯上仍由其組件管理時。
    • 思考: 相較于常規的組件渲染方式,<Teleport> 解決了哪些問題?
    • 休息: 為接下來的實踐做好準備。
  • 番茄時鐘 2 (25 分鐘工作 + 5 分鐘休息):

    • 內容: <Teleport> 的基礎使用。
    • 活動: 在你的 public/index.html 文件中,添加一個新的空 div 元素并為其指定一個 ID (例如,<div id="teleport-target"></div>)。
    • 實踐: 創建一個簡單的子組件 (MyModal.vue),包含一些內容。用 <Teleport to="#teleport-target"> 包裹其內容。在另一個組件(例如 App.vue)中渲染 MyModal.vue。觀察在 DOM 結構中,MyModal 的內容是否出現在 #teleport-target 中,即使 MyModal 在邏輯上是 App.vue 的子組件。
    • 休息: 檢查 DOM 結構以確認。
  • 番茄時鐘 3 (25 分鐘工作 + 5 分鐘休息):

    • 內容: <Teleport> 與組件狀態的結合。
    • 活動: 理解 <Teleport> 只移動渲染的 DOM 節點,而不改變組件的邏輯父子關系。組件仍然可以從其實際父組件接收 Props,并向其父組件發出事件。
    • 實踐:App.vue 中添加一個響應式變量 (isOpen = ref(false)) 和一個按鈕來切換 isOpen。使用 v-if="isOpen" 來條件性渲染 MyModal。在 MyModal 中添加依賴 App.vue 傳入的 Props 的內容,或者發出事件回傳給 App.vue。確認狀態和事件處理仍然按預期工作。
    • 休息: 短暫放松。
  • 番茄時鐘 4 (25 分鐘工作 + 5 分鐘休息):

    • 內容: 同一目標上的多個 <Teleport>disabled 屬性。
    • 活動: 了解多個 <Teleport> 組件可以掛載到同一個目標元素,它們的內容將按順序追加。理解 disabled 屬性可以條件性地啟用/禁用傳送功能。
    • 實踐: 創建兩個不同的模態框組件,并將它們都傳送到同一個目標。觀察它們的渲染順序。然后,給其中一個或兩個添加 disabled 屬性,并切換它,觀察內容從目標元素中出現/消失。
    • 休息: 補充能量。
  • 總結與回顧 (10-15 分鐘):

    • 總結 <Teleport> 的主要應用場景。
    • 確認你能成功將內容傳送到不同的 DOM 位置,同時保持組件的邏輯。
    • 理解 disabled 屬性以及多個 <Teleport> 如何在同一目標上協作。

Day 48: <Transition><TransitionGroup> - 動畫與過渡 (~3 小時)

  • 本日目標: 學習如何使用 <Transition> 對單個元素/組件應用過渡效果,以及如何使用 <TransitionGroup> 對列表應用過渡效果,并通過 CSS 類來實現動畫。
  • 所需資源:
    • Vue 3 官方文檔 (<Transition>): https://cn.vuejs.org/guide/built-ins/transition.html
    • Vue 3 官方文檔 (<TransitionGroup>): https://cn.vuejs.org/guide/built-ins/transition-group.html

學習計劃:

  • 番茄時鐘 1 (25 分鐘工作 + 5 分鐘休息):

    • 內容: <Transition> 簡介與基礎使用。
    • 活動: 閱讀官方文檔中關于 <Transition> 的內容。理解它用于對單個元素或組件應用進入/離開過渡。了解 Vue 會應用的六個過渡 CSS 類 (v-enter-from, v-enter-active, v-enter-to, v-leave-from, v-leave-active, v-leave-to)。
    • 實踐: 創建一個簡單的元素(例如,一個帶有文本的 div),并使用 v-if 條件性渲染它。用 <Transition> 包裹這個元素。添加基本的 CSS 類(例如,v-enter-active, v-leave-active 帶有 transition 屬性),使其能實現淡入/淡出效果。
    • 休息: 離開屏幕,放松眼睛。
  • 番茄時鐘 2 (25 分鐘工作 + 5 分鐘休息):

    • 內容: 自定義 <Transition> 類名與模式。
    • 活動: 學習如何通過 name 屬性自定義過渡類名(例如,<Transition name="fade"> 會使用 fade-enter-active)。理解 mode 屬性(in-out, out-in)用于管理同時進行的進入/離開過渡。
    • 實踐: 給你的 <Transition> 添加一個 name 屬性,并相應地更新你的 CSS 類。當在 <Transition> 內部使用 v-if/v-else 切換兩個不同組件時,嘗試使用 mode="out-in"
    • 休息: 快速的思維切換。
  • 番茄時鐘 3 (25 分鐘工作 + 5 分鐘休息):

    • 內容: <TransitionGroup> 簡介與列表過渡。
    • 活動: 閱讀官方文檔中關于 <TransitionGroup> 的內容。理解它專門用于對使用 v-for 渲染的元素列表應用進入/離開/移動過渡。注意它默認會渲染一個包裝元素(<span>),除非你指定了 tag 屬性。
    • 實踐: 創建一個簡單的項目列表(例如,一個字符串數組)。使用 v-for 渲染它們。添加按鈕來向列表中添加/刪除項目。
    • 休息: 準備進行更多編碼。
  • 番茄時鐘 4 (25 分鐘工作 + 5 分鐘休息):

    • 內容: <TransitionGroup> 的基礎使用和 v-move 類。
    • 活動:<TransitionGroup> 包裹你的 v-for 列表。理解 v-move 類,它在列表項重新排序時應用,用于平滑的動畫效果。
    • 實踐: 為你的列表添加 v-enter-active, v-leave-active(用于新添加/刪除的項目)和 v-move(用于重新排序的項目)的 CSS。當添加、刪除或重新排序項目(例如通過排序數組)時,觀察過渡效果。記住在 <TransitionGroup> 內部的 v-for 項中添加 :key
    • 休息: 深呼吸。
  • 總結與回顧 (10-15 分鐘):

    • 總結 <Transition><TransitionGroup> 的區別和應用場景。
    • 確保你理解了相關的核心 CSS 類 (-enter-from, -enter-active, -enter-to, -leave-from, -leave-active, -leave-to, v-move)。
    • 思考這些內置組件如何通過添加視覺效果顯著提升用戶體驗。

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

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

相關文章

SpringBean模塊(三)具有生命周期管理能力的類(1)AutowireCapableBeanFactory

一、介紹 1、簡介 AutowireCapableBeanFactory 是 Spring 框架中的一個接口&#xff0c;位于 org.springframework.beans.factory 包下&#xff0c;它提供了更底層的 Bean 實例化、依賴注入和生命周期管理能力&#xff0c;即使這些 Bean 沒有通過常規的 Component 或 XML 注冊…

Service Mesh

目錄 一、Service Mesh 的核心特點 二、Service Mesh 的典型架構 1. Sidecar 模式 2. 控制平面與數據平面分離 三、Service Mesh 解決的核心問題 四、典型應用場景 五、主流 Service Mesh 框架對比 六、挑戰與局限性 七、未來趨勢 總結 Istio 一、Istio 核心組件與…

黑馬Java基礎筆記-13常用查找算法

查找算法 基本查找(也叫順序查找&#xff0c;線性查找) 二分查找&#xff08;需要有序數據&#xff09; public static int binarySearch(int[] arr, int number){//1.定義兩個變量記錄要查找的范圍int min 0;int max arr.length - 1;//2.利用循環不斷的去找要查找的數據wh…

Go 語言 vs C+Lua(Skynet)游戲服務器方案對比分析

為啥挑這兩個呢&#xff1f;因為兩種技術分別對應CSP模型和Actor模型&#xff0c;都是經過時間檢驗的成熟且可靠的并發模型&#xff0c;問了很多地方&#xff0c;經過gpt整理得出如下報告。 從開發效率、運行性能、熱更新擴展、云部署與水平擴展能力、多類型游戲支持等五個維度…

LeetCode 925. 長按鍵入 java題解

雙指針。不會寫。 https://leetcode.cn/problems/long-pressed-name/description/ class Solution {public boolean isLongPressedName(String name, String typed) {int len1name.length();int len2typed.length();int i0,j0;while(i<len1&&j<len2){if(name.ch…

如何使用通義靈碼提高前端開發效率

工欲善其事&#xff0c;必先利其器。對于前端開發而言&#xff0c;使用VSCode已經能夠極大地提高前端的開發效率了。但有了AI加持后&#xff0c;前端開發的效率又更上一層樓了&#xff01; 本文采用的AI是通義靈碼插件提供的通義千問大模型&#xff0c;是目前AI性能榜第一梯隊…

【小明劍魔視頻Viggle AI模仿的核心算法組成】

Viggle AI 作為一款先進的生成式視頻AI工具&#xff0c;其核心技術棧融合了多項前沿算法。以下是深度解析其核心算法架構及實現原理&#xff1a; 一、核心算法組成 1. 運動控制生成&#xff08;Motion Control Generation&#xff09; 算法框架&#xff1a;基于擴散模型&…

解決Power BI Desktop導入Excel數據第一行不是列標題問題

選中第一行不是列標題的表→鼠標右鍵→選擇編輯查詢→進入Power Query界面→點擊“將第一行用作標題”→點擊左邊的“關閉并應用” 第一行就提升為標題了

對 Lambda 架構問題的深入理解

感謝 GPT&#xff0c;對很多問題的理解有機會更深。 大家攻擊 Lambda 架構&#xff0c;常說的一個點就是 “實時離線指標存在差異”。“實時離線指標存在差異”&#xff0c;是一個真實困擾運營方的問題嗎&#xff1f; 答案&#xff1a;是的&#xff0c;這是一個真實生活中的痛…

React中使用ahooks處理業務場景

// 從 ahooks 引入 useDynamicList 鉤子函數&#xff0c;用于管理動態列表數據&#xff08;增刪改&#xff09; import { useDynamicList } from ahooks;// 從 ant-design/icons 引入兩個圖標組件&#xff1a;減號圓圈圖標和加號圓圈圖標 import { MinusCircleOutlined, PlusCi…

藍橋杯2114 李白打酒加強版

問題描述 話說大詩人李白, 一生好飲。幸好他從不開車。 一天, 他提著酒顯, 從家里出來, 酒顯中有酒 2 斗。他邊走邊唱: 無事街上走&#xff0c;提顯去打酒。 逢店加一倍, 遇花喝一斗。 這一路上, 他一共遇到店 N 次, 遇到花 M 次。已知最后一次遇到的是花, 他正好把酒喝光了。…

小土堆pytorch--神經網路-卷積層池化層

神經網路-卷積層&池化層 一級目錄二級目錄三級目錄 1. 神經網路-卷積層2. 神經網路最大池化的應用 一級目錄 二級目錄 三級目錄 1. 神經網路-卷積層 在PyTorch中&#xff0c;torch.nn.Conv2d函數定義了一個二維卷積層&#xff0c;其常用參數包括&#xff1a; in_channel…

C++顯式聲明explicit

C顯示聲明explicit 在 C 中&#xff0c;explicit 關鍵字用于修飾單參數構造函數或多參數構造函數&#xff08;C11 起&#xff09;&#xff0c;其核心作用是禁止編譯器的隱式類型轉換。 一、必須加 explicit 的典型場景 1. 單參數構造函數 當構造函數只有一個參數時&#xff…

【springboot】HttpClient快速入門

介紹 HttpClient 是Apache Jakarta Common 下的子項目&#xff0c;可以用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端編程工具包&#xff0c;并且它支持 HTTP 協議最新的版本和建議 就是我們可以在java程序中使用HttpClient構造http請求&#xff0c;還可以發送h…

安全版4.5.8開啟審計后,hac+讀寫分離主備切換異常

文章目錄 環境BUG/漏洞編碼癥狀觸發條件解決方案 環境 系統平臺&#xff1a;UOS &#xff08;飛騰&#xff09; 版本&#xff1a;4.5.8 BUG/漏洞編碼 3043 癥狀 BUG安裝包&#xff1a; hgdb-see-4.5.8-db43858.aarch64.rpm 異常&#xff1a;hac集群一主兩備環境&#xff…

企業級 Go 多版本環境部署指南-Ubuntu CentOS Rocky全兼容實踐20250520

&#x1f6e0;? 企業級 Go 多版本環境部署指南-Ubuntu / CentOS / Rocky 全兼容實踐 兼顧 多版本管理、安全合規、最小權限原則與 CI/CD 可復現性&#xff0c;本指南以 Go 官方 toolchain 為主&#xff0c;結合 asdf 實現跨語言統一管理&#xff0c;并剔除已過時的 GVM。支持 …

Linux 的 TCP 網絡編程 -- 回顯服務器,翻譯服務器

目錄 1. 相關函數介紹 1.1 listen() 1.2 accept() 1.3 connect() 2. TCP 回顯服務器 2.1 Common.hpp 2.2 InetAddr.hpp 2.3 TcpClient.cc 2.4 TcpServer.hpp 2.5 TcpServer.cc 2.6 demo 測試 3. TCP 翻譯服務器 3.1 demo 測試 1. 相關函數介紹 其中一些函數在之前…

Unity3D仿星露谷物語開發46之種植/砍伐橡樹

1、目標 種植一棵橡樹&#xff0c;從種子變成大樹。 然后可以使用斧頭砍伐橡樹。 2、刪除totalGrowthDays字段 修改growthDays的含義&#xff0c;定義每個值為到達當前階段的累加天數。此時最后一個階段就是totalGrowthDays的含義。所以就可以刪除totalGrowthDays字段。 &…

容器化-K8s-鏡像倉庫使用和應用

一、K8s 鏡像倉庫使用 1、啟動鏡像倉庫 cd/usr/local/harbor ./install.sh2、配置鏡像倉庫地址 在 master 節點和 slaver 節點上,需要配置 Docker 的鏡像倉庫地址,以便能夠訪問本地的鏡像倉庫。編輯 Docker 的配置文件 vi /etc/docker/daemon.json(如果不存在則創建),添…

塔式服務器都有哪些重要功能?

塔式服務器作為一種擁有著獨特立式設計的服務器&#xff0c;能夠幫助企業節省一定的放置空間&#xff0c;提供一系列的功能和優勢&#xff0c;可以運用在多種應用場景當中&#xff0c;下面將探討一下塔式服務器的主要功能都有哪些&#xff1f; 塔式服務器可以支持基本的應用程序…