Vue百日學習計劃Day16-18天詳細計劃-Gemini版

重要提示:

  • 番茄時鐘: 每個番茄鐘為25分鐘學習,之后休息5分鐘。每完成4個番茄鐘,進行一次15-30分鐘的長休息。
  • 動手實踐: DOM 操作和事件處理的理解高度依賴于實際編碼。請務必在瀏覽器中創建 HTML 頁面,并配合 JavaScript 代碼進行實驗。
  • 開發者工具: 熟練使用瀏覽器的開發者工具 (特別是 Elements 和 Console 面板) 對學習 DOM 操作至關重要。
  • 資源利用:
    • MDN Web Docs (Web API - Document Object Model): https://developer.mozilla.org/zh-CN/docs/Web/API/Document_Object_Model
    • MDN Web Docs (事件): https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Building_blocks/Events
  • 當前日期: 2025年5月16日 (用于知曉信息時效性,DOM 和事件核心概念相對穩定)

學習目標 Day 16-18:DOM 操作與事件

  • Day 16:DOM 基礎與節點查找、屬性操作
    • 理解什么是 DOM (文檔對象模型) 及其樹形結構。
    • 掌握常用的 DOM 節點查找方法。
    • 學習如何讀取和修改元素的屬性和內容。
  • Day 17:DOM 節點操作與事件監聽基礎
    • 掌握創建、添加、插入和刪除 DOM 節點的方法。
    • 理解事件和事件監聽器的概念。
    • 學習使用 addEventListener 來處理用戶交互。
  • Day 18:事件流 (冒泡與捕獲) 與事件委托
    • 深入理解事件冒泡和事件捕獲階段。
    • 掌握事件委托的概念、優勢及其實現方式。
    • 能夠應用事件委托優化性能和簡化代碼。

每日學習計劃 (3小時/天)

Day 16: DOM 基礎與節點查找、屬性操作

  • 第1個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: DOM 簡介與樹形結構。
    • 內容: 閱讀 MDN 關于 DOM 的介紹。理解 DOM 是 HTML/XML 文檔的編程接口,它將文檔解析為一個由節點和對象組成的結構 (通常稱為 DOM 樹)。認識常見的節點類型 (Document, Element, Text, Attribute)。
    • 實踐: 隨便打開一個網頁,使用瀏覽器開發者工具的 “Elements” 面板查看其 DOM 樹結構,嘗試對應 HTML 標簽和 DOM 節點。
  • 第2個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 查找 DOM 節點 (一): document.getElementById(), document.getElementsByTagName().
    • 內容: 學習通過元素 ID 獲取單個元素節點。學習通過標簽名獲取 HTMLCollection (動態集合)。
    • 實踐: 創建一個簡單的 HTML 頁面,包含不同 ID 和標簽的元素。使用 JavaScript 獲取這些元素并在控制臺打印出來。觀察 getElementsByTagName 返回的結果。
  • 第3個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 查找 DOM 節點 (二): document.getElementsByClassName(), document.querySelector().
    • 內容: 學習通過類名獲取 HTMLCollection。學習 querySelector 使用 CSS 選擇器語法獲取匹配的第一個元素節點。
    • 實踐: 在 HTML 頁面中添加帶 class 的元素,練習使用 getElementsByClassNamequerySelector (嘗試不同的 CSS 選擇器,如類選擇器、后代選擇器)。
  • 第4個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 查找 DOM 節點 (三): document.querySelectorAll().
    • 內容: 學習 querySelectorAll 使用 CSS 選擇器語法獲取所有匹配的元素節點,返回一個靜態的 NodeList。
    • 實踐: 使用 querySelectorAll 獲取多個元素,并嘗試遍歷 NodeList。對比其與 HTMLCollection 的區別 (例如,動態性)。
    • (長休息: 15-30分鐘)
  • 第5個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 讀取和修改元素屬性 (Attribute vs Property)。
    • 內容: 學習使用 getAttribute(), setAttribute(), removeAttribute()。理解 HTML 屬性 (attributes) 和 DOM 對象屬性 (properties) 之間的區別與聯系 (例如 id, class vs className, value)。
    • 實踐: 獲取并修改 HTML 元素的標準屬性 (如 id, class, src, href) 和自定義屬性 (data-*)。
  • 第6個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 讀取和修改元素內容與樣式。
    • 內容: 學習 innerHTML, textContent, innerText 的區別和用法。學習通過 element.style 對象修改內聯樣式,以及通過 element.classList (add, remove, toggle, contains) 操作類名來改變樣式。
    • 實踐: 獲取一個元素的 HTML 內容和純文本內容并進行修改。嘗試動態改變一個元素的背景顏色、字體大小,以及通過添加/刪除 CSS 類來改變其外觀。

Day 17: DOM 節點操作與事件監聽基礎

  • 第1個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 創建 DOM 節點: document.createElement(), document.createTextNode().
    • 內容: 學習如何使用 JavaScript 動態創建新的元素節點和文本節點。
    • 實踐: 創建一個新的 <p> 元素和一個文本節點,并嘗試將文本節點的內容設置好。
  • 第2個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 添加 DOM 節點: appendChild(), insertBefore().
    • 內容: 學習如何將創建的節點添加到 DOM 樹中。appendChild 將節點添加到指定父元素的子節點列表末尾。insertBefore 將節點插入到指定父元素的某個已有子節點之前。
    • 實踐: 將上一個番茄鐘創建的 <p> 元素和文本節點組合并添加到 HTML 頁面的某個現有元素 (如 <body> 或某個 <div>) 內部。
  • 第3個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 刪除和替換 DOM 節點: removeChild(), replaceChild().
    • 內容: 學習如何從 DOM 中移除一個子節點。學習如何用一個新的節點替換一個已有的子節點。
    • 實踐: 選中頁面上的某個元素,然后將其從 DOM 中刪除。創建一個新元素,并用它替換頁面上的另一個現有元素。
  • 第4個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 事件簡介與事件監聽器。
    • 內容: 理解什么是事件 (如點擊、鼠標懸停、鍵盤按下等)。了解事件監聽器 (event listener) 或事件處理器 (event handler) 的概念。
    • 實踐: 閱讀 MDN 關于事件的介紹,思考網頁中常見的用戶交互行為。
    • (長休息: 15-30分鐘)
  • 第5個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 使用 addEventListener() 添加事件監聽。
    • 內容: 學習 element.addEventListener(type, listener, useCapture) 的語法。第一個參數是事件類型 (如 'click', 'mouseover'),第二個參數是事件觸發時執行的回調函數,第三個參數通常默認為 false (事件冒泡階段處理)。
    • 實踐: 為頁面上的一個按鈕添加一個點擊事件監聽器,當按鈕被點擊時,在控制臺輸出一條消息或改變頁面上某個元素的文本。
  • 第6個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 事件對象 (Event Object)。
    • 內容: 理解當事件發生時,會創建一個事件對象并作為參數傳遞給事件處理函數。了解事件對象常用的屬性 (如 event.target, event.currentTarget, event.type, event.preventDefault(), event.stopPropagation()).
    • 實踐: 在事件處理函數中打印事件對象,查看其包含的信息。嘗試使用 event.target 來確定具體是哪個元素觸發了事件。為一個鏈接添加點擊事件,并使用 event.preventDefault() 來阻止其默認的跳轉行為。

Day 18: 事件流 (冒泡與捕獲) 與事件委托

  • 第1個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 事件流 (Event Flow) - 事件冒泡 (Bubbling)。
    • 內容: 理解事件冒泡的概念:當一個元素上的事件被觸發時,同樣的事件會依次在它的所有祖先元素上被觸發,從內到外。
    • 實踐: 創建嵌套的 <div> 元素,為內部和外部的 <div> 都添加相同的點擊事件監聽器。點擊內部 <div>,觀察事件處理函數的執行順序。
  • 第2個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 事件流 (Event Flow) - 事件捕獲 (Capturing)。
    • 內容: 理解事件捕獲的概念:與冒泡相反,事件從 window 開始,逐級向下傳播到目標元素。可以通過將 addEventListener 的第三個參數設置為 true 來在捕獲階段處理事件。
    • 實踐: 修改上一個練習,將外部 <div> 的事件監聽器設置為在捕獲階段觸發,觀察執行順序的變化。
  • 第3個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 停止事件傳播: event.stopPropagation().
    • 內容: 學習如何使用 event.stopPropagation() 來阻止事件繼續在 DOM 樹中冒泡或捕獲。
    • 實踐: 在內部 <div> 的事件處理函數中調用 event.stopPropagation(),觀察外部 <div> 的事件處理函數是否還會執行。
  • 第4個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 事件委托 (Event Delegation) - 概念與優勢。
    • 內容: 理解事件委托是將事件監聽器添加到父元素上,利用事件冒泡來管理子元素上的事件。了解其優勢:減少內存消耗、簡化動態添加元素的事件處理。
    • 實踐: 閱讀相關資料,思考哪些場景適合使用事件委托 (例如:一個有很多列表項的 <ul>)。
    • (長休息: 15-30分鐘)
  • 第5個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: 事件委托 (Event Delegation) - 實現。
    • 內容: 學習如何在父元素的事件處理函數中,通過檢查 event.target 來判斷事件的實際來源,并執行相應的操作。
    • 實踐: 創建一個 <ul> 列表,只給 <ul> 元素添加一個點擊事件監聽器。當點擊某個 <li> 時,在控制臺輸出該 <li> 的內容。嘗試動態添加新的 <li> 到列表中,驗證事件委托依然有效。
  • 第6個番茄鐘 (25分鐘學習 + 5分鐘休息):
    • 主題: DOM 操作與事件綜合練習。
    • 內容: 結合 Day 16-18 所學,嘗試完成一個小的交互功能。例如:
      • 一個簡單的待辦事項列表:可以輸入內容,點擊按鈕添加事項到列表中,點擊已添加的事項可以將其標記為完成或刪除。
    • 實踐: 動手實現上述小功能,重點運用節點創建、添加、刪除以及事件監聽和事件委托。

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

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

相關文章

SearchClassUtil

路徑掃描工具SearchClassUtil&#xff0c;用于掃描指定包&#xff08;XXXX&#xff09;下的所有.class文件&#xff0c;并將它們的全限定類名&#xff08;如tomcat.SearchClassUtil&#xff09;收集到列表中返回。該工具使用遞歸文件遍歷和反射機制&#xff0c;是實現 Spring 框…

云服務器的運用自如

云服務器的運用自如&#xff1a;從基礎到高階的實戰指南&#xff08;2025版&#xff09; 云服務器作為數字化轉型的核心工具&#xff0c;其靈活性和高效性已覆蓋從個人開發者到企業級應用的廣泛場景。以下是基于當前技術趨勢的云服務器深度運用策略&#xff0c;涵蓋核心應用、…

解密企業級大模型智能體Agentic AI 關鍵技術:MCP、A2A、Reasoning LLMs-docker MCP解析

解密企業級大模型智能體Agentic AI 關鍵技術&#xff1a;MCP、A2A、Reasoning LLMs-docker MCP解析 這里面有很重要的原因其中一個很其中一個原因是因為如果你使用docker的方式&#xff0c;你可以在虛擬環境下就類似于這個沙箱的這個機制可以進行隔離。這對于安全&#xff0c;…

快慢指針算法(Floyd 判圈算法)

快慢指針&#xff08;又稱龜兔賽跑算法&#xff09;是一種常用的鏈表操作技巧&#xff0c;通過兩個移動速度不同的指針遍歷鏈表&#xff0c;用于解決鏈表中環檢測、中點查找等問題。以下是其核心應用場景和實現方法&#xff1a; 1. 鏈表環檢測 問題描述&#xff1a; 判斷鏈表中…

獨立開發者利用AI工具快速制作產品MVP

在當今快速發展的科技時代&#xff0c;獨立開發者面臨著前所未有的機遇與挑戰。曾經需要花費數天甚至數周才能完成的產品MVP&#xff08;Minimum Viable Product&#xff0c;最小可行性產品&#xff09;&#xff0c;如今借助強大的AI工具&#xff0c;可以在短短1小時內實現。 …

Spark處理過程-轉換算子和行動算子

&#xff08;一&#xff09;RDD的處理過程 RDD經過一系列的“轉換”操作&#xff0c;每一次轉換都會產生不同的RDD&#xff0c;以供給下一次“轉換”操作使 用&#xff0c;直到最后一個RDD經過“行動”操作才會真正被計算處理。 1.延遲。RDD中所有的轉換都是延遲的&…

設置環境變量啟動jar報

1. 環境變量設置 set PATHC:\Program Files\java17\jdk-17.0.9\bin;%PATH%2. 啟動jar java -jar jar包名3. 記錄原因 PATH路徑前添加java執行文件路徑才會管用。添加后可以試試以下命令 直接輸入PATH 回車 PATH進行java版本測試 java -version

589. N叉樹的前序遍歷迭代法:null指針與棧的巧妙配合

一、題目描述 給定一個N叉樹的根節點&#xff0c;返回其節點值的前序遍歷結果。前序遍歷的定義是&#xff1a;先訪問根節點&#xff0c;再依次遍歷每個子節點&#xff08;從左到右&#xff09;。例如&#xff0c;對于如下N叉樹&#xff1a; 1/ | \3 2 4 / \ 5 6前序遍歷結果…

顯性知識的主要特征

有4個主要特征&#xff1a; 客觀存在性靜態存在性可共享性認知元能性

奧運數據可視化:探索數據講述奧運故事

在數據可視化的世界里&#xff0c;體育數據因其豐富的歷史和文化意義&#xff0c;常常成為最有吸引力的主題之一。今天我要分享一個令人著迷的奧運數據可視化項目&#xff0c;它巧妙地利用交互式圖表和動態動畫&#xff0c;展現了自1896年至今奧運會的發展歷程和各國奧運成就的…

Mysql存儲過程(附案例)

? 文章目錄 存儲過程概述1、基本語法2、變量①、系統變量②、用戶自定義變量③、局部變量 3、流程控制語句①、if語句②、參數③、case語句④、while語句⑤、repeat語句⑥、loop語句⑦、cursor游標⑧、handler 4、存儲函數 存儲過程概述 存儲過程是事先經過編譯并存儲在數據…

小波變換+注意力機制成為nature收割機

小波變換作為一種新興的信號分析工具&#xff0c;能夠高效地提取信號的局部特征&#xff0c;為復雜數據的處理提供了有力支持。然而&#xff0c;它在捕捉數據中最為關鍵的部分時仍存在局限性。為了彌補這一不足&#xff0c;我們引入了注意力機制&#xff0c;借助其能夠強化關注…

SQLMesh 增量模型從入門到精通:5步實現高效數據處理

本文深入解析 SQLMesh 中的增量時間范圍模型&#xff0c;介紹其核心原理、配置方法及高級特性。通過實際案例說明如何利用該模型提升數據加載效率&#xff0c;降低計算資源消耗&#xff0c;并提供配置示例與最佳實踐建議&#xff0c;幫助讀者在實際項目中有效應用這一強大功能。…

Android應用內存分析與優化 - 工具篇之Booster

序 在原理篇中&#xff0c;我們發現在App內存的分布中&#xff0c;Code是占大頭的部分&#xff0c;所以我們可以從App體積方面想辦法&#xff0c;通過減小App體積達到降低內存的目的&#xff0c;同時&#xff0c;根據權威的機構分析&#xff0c;體積與用戶下載和留存有很大的聯…

金屬加工液展|切削液展|2025上海金屬加工液展覽會

2025上海金屬加工液展覽會 時間&#xff1a;2025年12月2-4日 地點&#xff1a;上海新國際博覽中心 2025上海金屬加工液展規劃30000平方米展覽規模&#xff0c;預設展位1200個&#xff0c;將為國內外加工液產業提供一個集“展示、合作、交易、發展”于一體的綜合性平臺&#…

React學習———Redux 、 React Redux和react-persist

Redux Redux是一個流行的JavaScript狀態管理庫&#xff0c;通常用于React等前端框架結合使用。Redux 的設計思想是讓應用的狀態變得可預測、可追蹤、易于調試和測試。 Redux的核心l理念 單一數據源&#xff1a;整個應用的狀態被存儲在一個唯一的Store對象中&#xff0c;所有…

Python字符串常用方法詳解

文章目錄 Python字符串常用方法詳解一、字符串大小寫轉換方法(常用)1. 基礎大小寫轉換2. 案例&#xff1a;驗證碼檢查&#xff08;不區分大小寫&#xff09; 二、字符串查找與替換方法1. 查找相關方法2. 替換相關方法 三、字符串判斷方法1. 內容判斷方法 四、字符串分割與連接方…

MyBatis—動態 SQL

MyBatis—動態 SQL 一、動態 SQL 的核心作用 動態 SQL 主要解決以下問題&#xff1a; 靈活性&#xff1a;根據不同的輸入參數生成不同的 SQL 語句&#xff08;如條件查詢、批量操作&#xff09;。 可維護性&#xff1a;減少重復代碼&#xff0c;通過標簽化邏輯提高 SQL 可讀…

Python機器學習筆記(二十五、算法鏈與管道)

對于許多機器學習算法,特定數據表示非常重要。首先對數據進行縮放,然后手動合并特征,再利用無監督機器學習來學習特征。因此,大多數機器學習應用不僅需要應用單個算法,而且還需要將許多不同的處理步驟和機器學習模型鏈接在一起。Pipeline類可以用來簡化構建變換和模型鏈的…

YOLOv3深度解析:多尺度特征融合與實時檢測的里程碑

一、YOLOv3的誕生&#xff1a;繼承與突破的起點 YOLOv3作為YOLO系列的第三代算法&#xff0c;于2018年由Joseph Redmon等人提出。它在YOLOv2的基礎上&#xff0c;針對小目標檢測精度低、多類別標簽預測受限等問題進行了系統性改進。通過引入多尺度特征圖檢測、殘差網絡架構和獨…