LESSON-16 · SELF-PACED PRACTICE

安全 DOM 查找與可重複渲染

把「安全 DOM 查找與可重複渲染」拆成 4 個可獨立完成、可重設、可驗證的自主學習 module。

4個獨立主題3個練習階段1個整合挑戰
看見缺口 → 修改一小段 → 重新載入驗收

每一個 topic 都有自己的檔案、Starter、Checkpoint、Solution 與證據清單。

先知道今天要做什麼

不要從長篇名詞開始;先從第一個可完成的小任務開始。

01

選一個 topic

從第一張卡開始,先閱讀任務情境與預期畫面。

02

修改自己的檔案

打開 Starter 的實作檔,依 Step 逐步修改,不靠按鈕代做。

03

用證據驗收

重新整理頁面,對照畫面、DOM、Computed、Console 或文件證據。

4 個獨立主題

每張卡只練一個責任;完成後再進入下一張。

01

querySelectorAll() 與 null guard

能處理 querySelectorAll 的 NodeList,並在單一 selector 找不到時安全停止。

要修改:files/starter/main.js

02

classList 與 dataset

能以 dataset 讀 DOM 識別,並用 classList 切換呈現狀態。

要修改:files/starter/main.js

03

DocumentFragment

能先在 DocumentFragment 組裝三個節點,再一次加入正式 DOM。

要修改:files/starter/main.js

04

可重複執行且不重複節點的 render

能讓相同資料連續 render 兩次後節點數仍等於資料數。

要修改:files/starter/main.js

最後整合挑戰

把已完成的責任轉回本章完整作品,不把整合步驟冒充成單項教學。

在同一份章節作品中整合 4 個 module,排除單項通過但組合失敗的問題。

完成具 null guard、data/class 狀態且重跑不重複的安全清單 renderer。

第一個建議動作

如果你現在只想知道下一步,先做這件事。

開啟「querySelectorAll() 與 null guard」:先看 files/starter/main.js 的 先輸出 selector 結果與 NodeList.length。,記錄目前狀態,再修改一小段。