>
>
>
>
>
> 
       內容介紹      
本書從幾個維度去介紹 React。一是作為 View 庫,它怎麼實現組件化,以及它背後的實現原理。二是擴展到 Flux 應用架構及重要的衍生品 Redux,它們怎麼與 React 結閤做應用開發。三是對 React 與 server 的碰撞産生的一些思考。四是講述它在可視化方麵的優勢與劣勢。 本書適閤有一定經驗的前端開發人員閱讀。    
            作者介紹      
陳屹,前端架構師,就職於阿裏巴巴。熱衷開源事業,長年專注於前端架構、數據可視化、Node.js等領域,知乎專欄pure render的創辦人。    
            關聯推薦      
全麵深入講述React技術棧的原創圖書 pure render專欄主創傾力打造 覆蓋React Flux Redux及可視化等內容      
       目錄      
第1章 初入 React 世界 1     
 1.1 React 簡介 1     
 1.1.1 專注視圖層 1     
 1.1.2 Virtual DOM 1     
 1.1.3 函數式編程 2     
 1.2 JSX 語法 3     
 1.2.1 JSX 的由來 3     
 1.2.2 JSX 基本語法 7     
 1.3 React 組件 11     
 1.3.1 組件的演變 11     
 1.3.2 React 組件的構建 18     
 1.4 React 數據流 21     
 1.4.1 state 21     
 1.4.2 props 23     
 1.5 React 生命周期 29     
 1.5.1 掛載或卸載過程 29     
 1.5.2 數據更新過程 30     
 1.5.3 整體流程 33     
 1.6 React 與 DOM 34     
 1.6.1 ReactDOM 35     
 1.6.2 ReactDOM 的不穩定方法 36     
 1.6.3 refs 38     
 1.6.4 React 之外的 DOM 操作 40     
 1.7 組件化實例:Tabs 組件 41     
 1.8 小結 47     
 第2章 漫淡 React 48     
 2.1 事件係統 48     
 2.1.1 閤成事件的綁定方式 48     
 2.1.2 閤成事件的實現機製 49     
 2.1.3 在React中使用原生事件 51     
 2.1.4 閤成事件與原生事件混用 51     
 2.1.5 對比React閤成事件與原生事件 54     
 2.2 錶單 55     
 2.2.1 應用錶單組件 55     
 2.2.2 受控組件 60     
 2.2.3 非受控組件 61     
 2.2.4 對比受控組件和非受控組件 62     
 2.2.5 錶單組件的幾個重要屬性 63     
 2.3 樣式處理 64     
 2.3.1 基本樣式設置 64     
 2.3.2 CSS Modules 66     
 2.4 組件間通信 74     
 2.4.1 父組件嚮子組件通信 74     
 2.4.2 子組件嚮父組件通信 75     
 2.4.3 跨級組件通信 77     
 2.4.4 沒有嵌套關係的組件通信 79     
 2.5 組件間抽象 81     
 2.5.1 mixin 81     
 2.5.2 高階組件 86     
 2.5.3 組閤式組件開發實踐 93     
 2.6 組件性能優化 97     
 2.6.1 純函數 97     
 2.6.2 PureRender 100     
 2.6.3 Immutable 103     
 2.6.4 key 109     
 2.6.5 react-addons-perf 110     
 2.7 動畫 111     
 2.7.1 CSS 動畫與  動畫 111     
 2.7.2 玩轉 React Transition 113     
 2.7.3 緩動函數 116     
 2.8 自動化測試 121     
 2.8.1 Jest 121     
 2.8.2 Enzyme 124     
 2.8.3 自動化測試 125     
 2.9 組件化實例:優化 Tabs 組件 125     
 2.10 小結 133     
 第3章 解讀 React 源碼 134     
 3.1 初探 React 源碼 134     
 3.2 Virtual DOM 模型 137     
 3.2.1 創建 React 元素 138     
 3.2.2 初始化組件入口 140     
 3.2.3 文本組件 141     
 3.2.4 DOM 標簽組件 144     
 3.2.5 自定義組件 150     
 3.3 生命周期的管理藝術 151     
 3.3.1 初探 React 生命周期 152     
 3.3.2 詳解 React 生命周期 152     
 3.3.3 無狀態組件 163     
 3.4 解密setState機製 164     
 3.4.1 setState異步更新 164     
 3.4.2 setState 循環調用風險 165     
 3.4.3 setState調用棧 166     
 3.4.4 初識事務 168     
 3.4.5 解密setState 170     
 3.5 diff 算法 172     
 3.5.1 傳統 diff 算法 172     
 3.5.2 詳解 diff 172     
 3.6 React Patch 方法 181     
 3.7 小結 183     
 第4章 認識 Flux 架構模式 184     
 4.1 React 獨立架構 184     
 4.2 MV* 與 Flux 190     
 4.2.1 MVC/MVVM 190     
 4.2.2 Flux 的解決方案 193     
 4.3 Flux 基本概念 194     
 4.4 Flux 應用實例 198     
 4.4.1 初始化目錄結構 198     
 4.4.2 設計 store 198     
 4.4.3 設計 actionCreator 200     
 4.4.4 構建 controller-view 202     
 4.4.5 重構 view 203     
 4.4.6 添加單元測試 205     
 4.5 解讀 Flux 206     
 4.5.1 Flux 核心思想 206     
 4.5.2 Flux 的不足 207     
 4.6 小結 207     
 第5章 深入 Redux 應用架構 208     
 5.1 Redux 簡介 208     
 5.1.1 Redux 是什麼 208     
 5.1.2 Redux 三大原則 209     
 5.1.3 Redux 核心 API 210     
 5.1.4 與 React 綁定 211     
 5.1.5 增強 Flux 的功能 212     
 5.2 Redux middleware 212     
 5.2.1 middleware 的由來 212     
 5.2.2 理解 middleware 機製 213     
 5.3 Redux 異步流 217     
 5.3.1 使用 middleware 簡化異步     
 請求 217     
 5.3.2 使用 middleware 處理復雜     
 異步流 221     
 5.4 Redux 與路由 224     
 5.4.1 React Router 225     
 5.4.2 React Router Redux 227     
 5.5 Redux 與組件 229     
 5.5.1 容器型組件 229     
 5.5.2 展示型組件 229     
 5.5.3 Redux 中的組件 230     
 5.6 Redux 應用實例 231     
 5.6.1 初始化 Redux 項目 231     
 5.6.2 劃分目錄結構 232     
 5.6.3 設計路由 234     
 5.6.4 讓應用跑起來 235     
 5.6.5 優化構建腳本 239     
 5.6.6 添加布局文件 239     
 5.6.7 準備首頁的數據 242     
 5.6.8 連接 Redux 245     
 5.6.9 引入 Redux Devtools 250     
 5.6.10 利用 middleware 實現 Ajax     
 請求發送 251     
 5.6.11 請求本地的數據 252     
 5.6.12 頁麵之間的跳轉 253     
 5.6.13 優化與改進 256     
 5.6.14 添加單元測試 257     
 5.7 小結 258     
 第6章 Redux 高階運用 259     
 6.1 高階 reducer 259     
 6.1.1 reducer 的復用 259     
 6.1.2 reducer 的增強 261     
 6.2 Redux 與錶單 262     
 6.2.1 使用 redux-form-utils 減少     
 創建錶單的冗餘代碼 263     
 6.2.2 使用 redux-form 完成錶單的     
 異步驗證 265     
 6.2.3 使用高階 reducer 為現有模塊     
 引入錶單功能 267     
 6.3 Redux CRUD 實戰 268     
 6.3.1 準備工作 268     
 6.3.2 使用 Table 組件完成“查”     
 功能 269     
 6.3.3 使用 Modal 組件完成“增”     
 與“改” 274     
 6.3.4 巧用 Modal 實現數據的刪除     
 確認 277     
 6.3.5 善用 promise 玩轉 Redux 異步事件流 278     
 6.4 Redux 性能優化 279     
 6.4.1 Reselect 280     
 6.4.2 Immutable Redux 282     
 6.4.3 Reducer 性能優化 282     
 6.5 解讀 Redux 284     
 6.5.1 參數歸一化 285     
 6.5.2 初始狀態及 getState 286     
 6.5.3 subscribe 286     
 6.5.4 dispatch 287      
 6.5.5 replaceReducer 288     
 6.6 解讀 react-redux 288     
 6.6.1 Provider 288     
 6.6.2  connect 290     
 6.6.3 代碼熱替換 293     
 6.7 小結 294     
 第7章 React 服務端渲染 295     
 7.1 React 與服務端模闆 295     
 7.1.1 什麼是服務端渲染 295     
 7.1.2 react-view 296     
 7.1.3 react-view 源碼解讀 296     
 7.2 React 服務端渲染 299     
 7.2.1 玩轉 Node.js 300     
 7.2.2 React-Router 和 Koa-Router     
 統一 303     
 7.2.3 同構數據處理的探討 306     
 7.3 小結 307     
 第8章 玩轉 React 可視化 308     
 8.1 React 結閤 Canvas 和 SVG 308     
 8.1.1 Canvas 與 SVG 308     
 8.1.2 在 React 中的 Canvas 310     
 8.1.3 React 中的 SVG 311     
 8.2 React 與可視化組件 316     
 8.2.1 包裝已有的可視化庫 316     
 8.2.2 使用 D3 繪製 UI 部分 317     
 8.2.3 使用 React 繪製 UI 部分 319     
 8.3 Recharts 組件化的原理 322     
 8.3.1 聲明式的標簽 323     
 8.3.2 貼近原生的配置項 325     
 8.3.3 接口式的 API 326     
 8.4 小結 328     
 附錄A 開發環境 329     
 附錄B 編碼規範 345     
 附錄C Koa middleware 349           
				
 
				
				
					《前端開發實戰:從零到精通的JavaScript與現代Web技術指南》  一、 概述  《前端開發實戰:從零到精通的JavaScript與現代Web技術指南》是一本旨在為 aspiring 和 experienced 前端開發者打造的 comprehensive 指南。本書不拘泥於單一框架或庫的深度剖析,而是著眼於構建現代、高效、可維護的前端應用所需的核心技術棧和思維模式。我們將從 JavaScript 的基礎概念齣發,逐步深入到 ES6+ 的現代特性,再到 DOM 操作、事件處理、異步編程等前端開發的關鍵環節。隨後,本書將帶領讀者探索流行的前端構建工具(如 Webpack、Vite)的工作原理與實際應用,理解模塊化、代碼優化、資源打包等核心流程。  在深入理解瞭前端開發的基礎之後,本書將聚焦於現代前端開發中不可或缺的工具和技術。我們將詳細講解如何利用 Git 進行版本控製,掌握團隊協作的核心流程。同時,本書還將引導讀者理解 HTTP 協議在 Web 開發中的作用,包括請求與響應、狀態碼、緩存機製等,為理解前後端交互打下堅實基礎。數據可視化、響應式設計、性能優化策略、SEO 基礎知識等也將在本書中得到詳盡的闡述,幫助開發者構建用戶體驗更佳、搜索引擎更友好的 Web 應用。  本書的編寫理念是“實踐齣真知”。每一章節都將結閤豐富的代碼示例、詳細的步驟解析和貼近實際開發場景的案例分析。我們鼓勵讀者邊學邊練,通過動手實踐來鞏固所學知識,逐步建立起獨立解決前端開發問題的能力。本書不追求枯燥的概念堆砌,而是緻力於讓讀者理解“為什麼”和“怎麼做”,培養前瞻性的技術視野和良好的工程化思維。  二、 目標讀者     零基礎入門者: 對 Web 前端開發充滿興趣,但缺乏係統學習經驗的初學者。本書將從最基本的概念講起,提供清晰的學習路徑,幫助您快速上手。    有一定基礎的開發者: 已經掌握 HTML、CSS 的基本知識,希望係統學習 JavaScript,並進一步瞭解現代前端開發流程和工具的開發者。    轉行或進階的開發者: 來自其他技術領域的開發者,希望轉嚮前端開發,或者希望拓寬技術棧、提升前端開發能力的工程師。    希望鞏固基礎的開發者: 即使已經有一定的前端開發經驗,但希望迴顧和深化 JavaScript 基礎、理解構建工具、掌握更優的開發實踐的開發者。  三、 內容亮點與特色  1. 紮實的 JavaScript 基礎,構建堅實的地基:     變量、數據類型與運算符: 徹底理解 JavaScript 的基本構建塊,包括作用域、閉包等核心概念。    控製流與函數: 掌握條件語句、循環以及函數聲明、錶達式、箭頭函數等,為編寫邏輯嚴謹的代碼奠定基礎。    麵嚮對象編程: 深入理解原型鏈、構造函數、類(ES6+)等,掌握 JavaScript 中的麵嚮對象編程思想。    ES6+ 新特性: 全麵解析 `let`、`const`、箭頭函數、模闆字符串、解構賦值、Promises、Async/Await、模塊化(import/export)等,讓您寫齣更現代、更簡潔的代碼。    DOM 操作與事件處理: 掌握如何動態地操作網頁內容,以及如何響應用戶的交互行為,實現豐富的用戶體驗。    異步編程: 深入理解迴調函數、Promises、Async/Await,以及 `fetch` API,有效處理網絡請求和異步任務,避免“迴調地獄”。  2. 現代前端工程化體係,高效開發的關鍵:     模塊化開發: 理解 CommonJS、AMD、ES Modules 等模塊化規範,以及如何在項目中組織和管理代碼。    構建工具詳解:        Webpack: 從零開始配置 Webpack,理解其核心概念(Entry, Output, Loaders, Plugins),掌握代碼打包、代碼分割、資源管理、熱更新等高級功能。        Vite: 介紹 Vite 的優勢,包括極速的冷啓動和熱更新,以及如何在 Vite 環境下進行開發和構建。    包管理器: 熟悉 npm 和 yarn 的基本用法,掌握依賴安裝、版本管理等操作。    Linting 與 Formatting: 介紹 ESLint 和 Prettier,學習如何規範代碼風格,提高代碼質量和可讀性。  3. 核心 Web 技術與網絡基礎,理解 Web 的運作機製:     HTTP 協議: 深入理解 HTTP 請求與響應的結構,掌握常見的 HTTP 方法(GET, POST 等)和狀態碼,理解緩存機製對性能的影響。    響應式設計: 學習如何使用 CSS Media Queries、Flexbox、Grid 等技術,構建能夠適應不同屏幕尺寸的網頁。    性能優化:        代碼優化: 最小化、壓縮代碼,代碼分割,按需加載。        資源優化: 圖片優化、字體優化、緩存策略。        渲染優化: 減少重繪和迴流,使用虛擬 DOM 的基本思想(雖然不深入到某個具體框架,但會講解其思想)。    Web 安全基礎: 瞭解常見的 Web 安全威脅(如 XSS, CSRF)及其防範方法。  4. 版本控製與團隊協作,規範開發流程:     Git 核心命令: 掌握 `clone`, `add`, `commit`, `push`, `pull`, `branch`, `merge`, `rebase` 等常用命令。    GitHub/GitLab 工作流程: 學習分支策略、Pull Request(或 Merge Request)的工作流程,理解團隊協作的最佳實踐。  5. 進階主題與實踐拓展,提升專業能力:     數據可視化基礎: 介紹如何利用 Canvas API 或 SVG,或簡單介紹第三方庫(如 Chart.js)的基本用法,為數據呈現打下基礎。    前端路由基礎: 理解單頁應用(SPA)的概念,以及前端路由的核心原理。    單元測試與集成測試基礎: 瞭解測試的重要性,介紹 Jest 等測試框架的基本用法,編寫可維護的代碼。    可訪問性(Accessibility)基礎: 關注為所有用戶提供無障礙的 Web 體驗。    SEO 基礎: 瞭解搜索引擎優化(SEO)的基本原則,如何編寫對搜索引擎更友好的 HTML。  四、 學習方法與建議     理論與實踐相結閤: 閱讀每一章節後,務必親手敲代碼、運行示例,並嘗試修改和擴展。    理解原理,而非死記硬背: 關注技術背後的原理和設計思想,這將使您更靈活地運用知識。    多思考“為什麼”: 在學習某個技術點時,思考它解決的是什麼問題,以及為什麼采用這種方式。    積極提問與交流: 在學習過程中遇到問題,積極查閱資料、在社區提問,與他人交流學習經驗。    循序漸進,持之以恒: 前端技術更新迭代快,保持持續學習的熱情和耐心至關重要。  五、 結語  《前端開發實戰:從零到精通的JavaScript與現代Web技術指南》將成為您踏入前端開發領域、提升專業技能的得力助手。我們緻力於提供一套係統、實用、前沿的學習路徑,幫助您掌握構建現代 Web 應用所必需的核心知識和技能。通過本書的學習,您將不僅能夠獨立完成復雜的 Web 前端項目,更能培養齣色的工程化思維和解決問題的能力,在不斷變化的技術浪潮中保持競爭力。  我們相信,掌握好 JavaScript 的基礎,理解現代前端工程化的理念,並結閤豐富的實踐經驗,您就能成為一名優秀的前端開發者。祝您在前端開發的旅途中,學有所成,行有所達!