iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Vue.js

從零到一打造 Vue3 響應式系統 系列

這是一個以 Vue 3 響應式系統為核心的學習與探索紀錄的系列文章。

我嘗試從零開始,重現 Vue 3 的響應式機制,並在過程中分享自己的思考與整理過程。希望能藉由這個系列,讓自己更深入掌握 Vue 3 的底層原理。

參賽天數 22 天 | 共 22 篇文章 | 10 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day 11 - Effect:Link 節點的複用實作

昨天我們發現了 Effect 的問題:當 effect 被重複觸發時,它會不斷重新收集依賴,導致依賴鏈表指數級增長。 要讓 effect 記住它「訂閱過誰」,...

2025-09-20 ‧ 由 heyrian 分享
DAY 12

Day 12 - Effect :多重依賴之指數觸發重現

昨天我們解決了單一依賴所導致的指數增長問題。然而,在真實的開發場景中,一個 effect 函式往往需要依賴多個響應式變數,現在我們試著新增多個依賴,在範例中加...

2025-09-21 ‧ 由 heyrian 分享
DAY 13

Day 13 - Effect:多重依賴之節點復用解方

昨天,我們知道當 effect 函式依賴多個響應式變數時,會觸發指數級更新。 觀察我們之前的做法: run() 函式首先會將 depsTail 設為 un...

2025-09-22 ‧ 由 heyrian 分享
DAY 14

Day 14 - Effect:清理依賴的場景

在解決了鏈表節點指數增長的問題後,我們還需要注意依賴的有效性。 effect 的執行路徑可能因為條件判斷或程式邏輯不同而改變,導致這次執行中不再需要某些依賴。...

2025-09-23 ‧ 由 heyrian 分享
DAY 15

Day 15 - Effect:依賴清理實作方案

在實際狀況,effect 函式內部的依賴,常因為條件分支(像是 if...else)而發生變化,這種情況稱為「動態依賴」。 動態依賴會帶來一個問題:在某次執行中...

2025-09-24 ‧ 由 heyrian 分享
DAY 16

Day 16 - 效能處理:LinkPool

昨天,我們完成了「依賴清理」機制,讓 effect 能夠正確處理動態變化的依賴關係。然而,這也帶來了一個新的效能問題:當依賴頻繁變化時,系統需要不斷地建立和刪除...

2025-09-25 ‧ 由 heyrian 分享
DAY 17

Day 17 - 效能處理:無限循環

打造響應式系統時,容易遇到的狀況,就是 effect 在執行期間同時「讀取」又「寫入」同一個依賴,這會造成自我觸發(self-trigger)。 effect...

2025-09-26 ‧ 由 heyrian 分享
DAY 18

Day 18 - Reactive:深入 Proxy 的設計思路

在之前的文章中,我們已經完成了 ref 實作,它能將原始值包裝成響應式物件。現在,我們要接續完成另一部分的響應式系統核心:reactive 函式。我們的目標是...

2025-09-27 ‧ 由 heyrian 分享
DAY 19

Day 19 - Reactive:reactive 的基礎實作

上一次我們提到: 每個物件的每個屬性都需要自己的 Dep。 如何建立 target.a → Dep 的對應關係? 如何在不污染原始物件的情況下儲存這個關係?...

2025-09-28 ‧ 由 heyrian 分享
DAY 20

Day 20 - Reactive:reactive 極端案例

我們完成 reactive 的基本實踐後,接下來有幾個有可能會發生的情況: 原始物件傳入 Reactive 物件 Reactive 物件傳入 Reactiv...

2025-09-29 ‧ 由 heyrian 分享