幫助中心 | 我的帳號 | 關於我們

React設計原理

  • 作者:編者:卡頌|責編:黃愛萍
  • 出版社:電子工業
  • ISBN:9787121444838
  • 出版日期:2022/12/01
  • 裝幀:平裝
  • 頁數:352
人民幣:RMB 109 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書致力於剖析React設計理念與實現原理,基於React 18版本源碼講解。全書劃分為3個篇章,第1篇為理念篇(第1章?第2章),講解React在主流前端框架中的定位與設計理念。第2篇為架構篇(第3章?第5章),講解React架構中的3個階段——schedule、render、commit,以及如何在架構中踐行設計理念。第3篇為實現篇(第6章?第8章),貫穿React架構中的3個階段,講解具體API的實現細節。
    本書的目標讀者包括有實際React項目經驗並希望更深入理解React的開發人員,以及沒有使用過React但對前端框架設計感興趣的開發人員。通過學習本書,讀者可以對當前主流前端框架的實現原理有清晰的認識,並對React從理念到實現層面有更深入的理解。

作者介紹
編者:卡頌|責編:黃愛萍
    卡頌,前端工程師。曾先後就職于360奇舞團、位元組跳動等企業。技術社區活躍者,開源電子書《React技術揭秘》的作者。

目錄
第1篇  理念篇
第1章  前端框架原理概覽
  1.1  初識前端框架
    1.1.1  如何描述UI
    1.1.2  如何組織UI與邏輯
    1.1.3  如何在組件之間傳輸數據
    1.1.4  前端框架的分類依據
    1.1.5  React中的自變數與因變數
  1.2  前端框架使用的技術
    1.2.1  編程:細粒度更新
    1.2.2  AOT
    1.2.3  Virtual DOM
  1.3  前端框架的實現原理
    1.3.1  Svelte
    1.3.2  Vue3
    1.3.3  React
  1.4  總結
第2章  React理念
  2.1  問題與解決思路
    2.1.1  事件循環
    2.1.2  瀏覽器渲染
    2.1.3  CPU瓶頸
    2.1.4  I/O瓶頸
  2.2  底層架構的演進
    2.2.1  新舊架構介紹
    2.2.2  主打特性的迭代
    2.2.2  漸進升級策略的迭代
  2.3  Fiber架構
    2.3.1  FiberNode的含義
    2.3.2  雙緩存機制
    2.3.3  mount時Fiber Tree的構建
    2.3.4  update時Fiber Tree的構建
  2.4  調試React源碼
    2.4.1  倉庫結構概覽
    2.4.2  以本書推薦方式調試源碼
    2.4.3  以官方方式調試源碼
  2.5  總結
第2篇  架構篇
第3章  render階段
  3.1  流程概覽
  3.2  beginWork
  3.3  React中的位運算
    3.3.1  基本的三種位運算
    3.3.2  位運算在「標記狀態」中的應用
  3.4  completeWork
    3.4.1  flags冒泡
    3.4.2  mount概覽
    3.4.3  update概覽
  3.5  編程:ReactDOM Renderer
  3.6  總結

第4章  commit階段
  4.1  流程概覽
    4.1.1  子階段的執行流程
    4.1.2  Effects list
  4.2  錯誤處理
    4.2.1  捕獲錯誤
    4.2.2  構造callback
    4.2.3  執行callback
  4.3  BeforeMutation階段
  4.4  Mutation階段
    4.4.1  刪除DOM元素
    4.4.2  插入、移動DOM元素
    4.4.3  更新DOM元素
    4.4.4  Fiber Tree切換
  4.5  Layout階段
  4.6  總結
第5章  schedule階段
  5.1  編程:簡易schedule階段實現
    5.1.1  Scheduler簡介
    5.1.2  改造后的schedule方法
    5.1.3  改造后的perform方法
    5.1.4  改造后的完整流程
  5.2  Scheduler的實現
    5.2.1  流程概覽
    5.2.2  優先順序隊列的實現
    5.2.3  宏任務的選擇
  5.3  Lane模型
    5.3.1  React與Scheduler的結合
    5.3.2  基於expirationTime的演算法
    5.3.3  基於Lane的演算法
  5.4  Lane模型在React中的應用
    5.4.1  初始化lane
    5.4.2  從fiberNode到FiberRootNode
    5.4.3  調度FiberRootNode
    5.4.4  調度策略
    5.4.5  解決飢餓問題
    5.4.6  root.pendingLanes工作流程
  5.5  Batched Updates
    5.5.1  Batched Updates發展史
    5.5.2  不同框架Batched Updates的區別
  5.6  總結
第3篇  實現篇
第6章  狀態更新流程
  6.1  編程:簡易事件系統實現
    6.1.1  實現SyntheticEvent
    6.1.2  實現事件傳播機制
    6.1.3  收集路徑中的事件回調函數
    6.1.4  捕獲、冒泡階段的實現
  6.2  Update
    6.2.1  心智模型

    6.2.2  數據結構
    6.2.3  updateQueue
    6.2.4  產生update
    6.2.5  消費update需要考慮的問題
    6.2.6  消費update
  6.3  ReactDOM.createRoot流程
  6.4  useState流程
  6.5  性能優化
    6.5.1  eagerState策略
    6.5.2  bailout策略
    6.5.3  bailout策略的示例
    6.5.4  bailout與Context API
    6.5.5  對日常開發的啟示
  6.6  總結
第7章  reconcile流程
  7.1  單節點Diff
  7.2  多節點Diff
    7.2.1  設計思路
    7.2.2  演算法實現
  7.3  編程:實現Diff演算法
    7.3.1  遍歷前的準備工作
    7.3.2  核心遍歷邏輯
    7.3.3  遍歷后的收尾工作
  7.4  總結
第8章  FC與Hooks實現
  8.1  心智模型
    8.1.1  代數效應
    8.1.2  FC與Suspense
    8.1.3  Suspense工作流程
  8.2  編程:簡易useState實現
    8.2.1  實現「產生更新的流程」
    8.2.2  實現useState
    8.2.3  簡易實現的不足
  8.3  Hooks流程概覽
    8.3.1  dispatcher
    8.3.2  Hooks的數據結構
    8.3.3  Hooks執行流程
  8.4  useState與useReducer
  8.5  effect相關Hook
    8.5.1  數據結構
    8.5.2  聲明階段
    8.5.3  調度階段
    8.5.4  執行階段
  8.6  useMemo與useCallback
    8.6.1  mount時執行流程
    8.6.2  update時執行流程
    8.6.3  useMemo的妙用
  8.7  useRef
    8.7.1  實現原理
    8.7.2  ref的工作流程

    8.7.3  ref的失控
    8.7.4  ref失控的防治
  8.8  useTransition
    8.8.1  useTransition實現原理
    8.8.2  useTransition工作流程
    8.8.3  entangle機制
    8.8.4  entangle實現原理
    8.8.5  entangle工作流程
  8.9  useDeferredValue
  8.10  編程:實現useErrorBoundary
    8.10.1  定義dispatcher
    8.10.2  實現邏輯
    8.10.3  提取公共方法
    8.10.4  render階段錯誤處理流程
    8.10.5  commit階段錯誤處理流程
  8.11  總結

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032