本書特色
本書特別推薦給欲使用React、Redux、Babel和Webpack來架設Web應用程式的程式設計師,本書所引介的技術堆疊特點如下:
●清爽的元件程式結束了全螢幕HTML標籤與類別名稱的噩夢。
●宣告式地將資料對映為介面,減少了煩瑣的DOM操作。
●高階函數、管線、Currying等函數式程式設計思想的運用,使得複雜邏輯的處理變得相當簡單。
●自動化建置編譯技術降低了原始程式碼與靜態資源的管理成本。
除此之外,全書除了第1章和第28章外,每章節都有範例程式。
內容簡介
●React 與Redux 的基礎知識介紹。
●透過精彩的官方範例學習React 與Redux。
●學習優秀的協力廠商擴充。
●實戰架設大型Web應用程式。
全書不僅只於介紹技術的使用方法,更詳析其背後的理念與智慧。
適用讀者
熟悉JavaScript程式設計,有興趣使用React與Redux來架設Web應用程式的設計師與相關從業人員。
作者序
致讀者
本書是為想以React、Redux、Babel和Webpack來架設Web應用程式的程式設計師所準備的。與其他技術堆疊相比,此技術堆疊(指的是React、Redux、Babel、Webpack以及社區中許多與此相關的優秀工具)的學習成本並不低,但其中的智慧與思想卻著實令人讚歎:清爽的元件程式結束了全螢幕HTML標籤與類別名稱的噩夢;宣告式地將資料對映為介面,減少了煩瑣的DOM操作;高階函數、管線、Currying等函數式程式設計思想的運用,使得複雜邏輯的處理變得相當簡單;自動化建置編譯技術降低了原始程式碼與靜態資源的管理成本。隨著時間的演進,技術工具或許很快會改朝換代,但是這些前端工程中的最佳做法思想卻不會輕易過時。如果你不僅想學習這些技術的使用方法,更想了解這些技術背後所包含的思想與智慧,那麼筆者真誠地建議你閱讀本書。
閱讀本書之前的準備
想要極佳地了解本書的內容,讀者需要具備一定的Node.js和ES2015、ES2016基礎,至少要了解一些常見的概念,例如NPM、模組系統、常數、函數、裝飾器和類別。除此之外,最好還熟悉JavaScript程式在伺服器和瀏覽器環境下的除錯技術。
學習本書範例程式時,大部分時間都要在命令列中操作。因此,你應該能夠熟練使用自己作業系統中的命令列工具。
本書附帶的程式是開放原始碼的,全部上傳到GitHub。這些範例程式中的開發經驗來自開放原始碼社區和筆者自己的實作思考。筆者並不認為這是使用React與Redux開發Web應用程式的唯一方式。讀者可以將其作為參考,如果有更好的想法,強烈建議讀者將其貢獻給社區,與更多的開發者一起交流進步。
最後要說明的是,本書因篇幅有限等原因,無法對每一項技術的說明都做到完整而詳盡。因此,讀者可根據書中的提示和推薦,去閱讀參考對應技術的官方文件。
本書的內容安排
本書分為四部分。
第一部分 基礎篇主要介紹React與Redux的基礎知識。
第1章 簡介本書所要說明的技術,包含React、Redux、Node與Universal繪製、Babel及Webpack。
第2章 說明如何在Node.js中執行React。
第3章 說明如何在瀏覽器中執行React。
第4章 介紹開發伺服器和熱取代技術及其實現過程。
第5章 介紹React的創新語法:JSX。
第6章 介紹React的資料載體:state、props與context。
第7章 介紹React的兩個物件:ReactElement和元件實例。
第8章 介紹Redux的action、reducer與store。
第9章 介紹Redux的action建立函數和Thunk中介軟體。
第二部 分進階篇透過精彩的官方範例學習React與Redux。
第10章 說明如何手動將Redux連接到React中。
第11章 說明如何使用react-redux將Redux連接到React中。
第12章 介紹Redux的取消/重做和Redux開發者工具的使用。
第13章 說明如何在React與Redux的程式中撰寫測試。
第14章 討論Redux的全域狀態與React元件的內部狀態。
第15章 說明React與Redux中常用的幾種陣列處理方法。
第16章 介紹Redux中的非同步處理。
第17章 介紹如何自訂Redux中介軟體。
第18章 說明如何使用React與Redux實現Universal繪製。
第三部分 擴充篇學習一些優秀的協力廠商擴充。
第19章 介紹Webpack同構工具。
第20章 介紹ReactRouter,並透過它實現Universal路由。
第21章 介紹多頁面下的非同步處理。
第22章 介紹了bootstrap-loader、PostCSS、Autoprefixer和React-Bootstrap。
第四部分 實戰篇逐步架設大型Web應用程式。
第23章 介紹一個大型專案的基本結構。
第24章 使用ReduxForm製作各種表單。
第25章 實現圖表與表格。
第26章 實現使用者認證。
第27章 說明部署到Heroku的方法,並實現持續整合。
第28章 列出其他資源。
除了第1章和第28章外,本書每個章節都有一個範例程式。前三部分使用了短而精的範例程式,獨立示範技術的功能。從第四部分開始,每一章的實例都會建立在前一章實例的基礎上,最後完成一個大型專案的架設。
致讀者
本書是為想以React、Redux、Babel和Webpack來架設Web應用程式的程式設計師所準備的。與其他技術堆疊相比,此技術堆疊(指的是React、Redux、Babel、Webpack以及社區中許多與此相關的優秀工具)的學習成本並不低,但其中的智慧與思想卻著實令人讚歎:清爽的元件程式結束了全螢幕HTML標籤與類別名稱的噩夢;宣告式地將資料對映為介面,減少了煩瑣的DOM操作;高階函數、管線、Currying等函數式程式設計思想的運用,使得複雜邏輯的處理變得相當簡單;自動化建置編譯技術降低了原始程式碼與靜態資源的管理成本。隨著時間的演進,技術工具...
目錄
致讀者
第一部份 基礎篇
Chapter01 技術簡介
React
Redux
Node與Universal繪製
Babel
Webpack
本章小結
Chapter02 在Node.js中執行React
實例
撰寫React元件
在Node.js中繪製元件
使用Babel編譯執行Node.js程式
本章小結
Chapter03 在瀏覽器中執行React
實例
元件重複使用
在瀏覽器中繪製React元件
使用Webpack包裝編譯
在瀏覽器中執行
本章小結
Chapter04 開發伺服器和熱取代
實例
安裝
設定Babel
設定Webpack
設定Express伺服器
本章小結
Chapter05 React的創新語法:JSX
實例
JSX簡介
JSX常用語法
本章小結
Chapter06 React的資料載體:state、props 與context
實例
State
Props
Context
Chapter07 React的兩個物件:ReactElement與元件實例
實例
ReactElement
元件實例
本章小結
Chapter08 初識Redux
實例
Action
Reducer
Store
本章小結
Chapter09 Action建立函數與Redux Thunk中介軟體
實例
Action建立函數
Redux Thunk中介軟體
本章小結
第二部份 進階篇
Chapter10 React與Redux的連接:手動連接
實例
手動連接的步驟
手動連接的缺點
本章小結
Chapter11 React與Redux的連接:使用react-redux連接
實例
連接步驟
多種寫法
連接原理
展示元件與容器元件
本章小結
Chapter12 實現取消/重做
實例
取消/重做
Redux開發者工具
Redux並不「低效」
本章小結
Chapter13 測試
實例
測試工具
測試action建立函數
測試React元件
測試容器元件
測試reducer純函數
執行測試指令稿
本章小結
Chapter14 Redux的全域狀態與React元件的內部狀態
實例
全域狀態與內部狀態的定義
全域狀態完全替代了內部狀態?
全域狀態與內部狀態的適用場景
本章小結
Chapter15 React與Redux中的陣列處理
實例
reduce()
filter()
map()
every()
some()
展開運算子
本章小結
Chapter16 Redux的大舞台:非同步
實例
JavaScript事件驅動程式設計
Promise
Redux中的非同步
State tree結構
非同步與變化
本章小結
Chapter17 自訂Redux中介軟體
實例
中介軟體的功能
中介軟體的撰寫
中介軟體的執行
自訂API 中介軟體
本章小結
Chapter18 Universal繪製
實例
公用一套程式
服務端繪製
用戶端繪製
本章小結
第三部份 擴充篇
Chapter19 Universal繪製神器:Webpack同構工具
實例
Webpack同構工具的功能
服務端呼叫
用戶端呼叫
真實場景
本章小結
Chapter20 多頁面的實現:路由
實例
路由也是元件
路由比對
使用Link和IndexLink導覽
服務端路由
本章小結
Chapter21 多頁面下的非同步作業
實例
redux-amrc
多頁面下的非同步作業
本章小結
Chapter22 使用Bootstrap
實例
bootstrap-loader
PostCSS與Autoprefixer
React-Bootstrap
本章小結
第四部份 實戰篇
Chapter23 架設大型專案
實例
開發伺服器
前端伺服器
API伺服器
生產環境下的建置編譯
公用程式
品質保障
本章小結
Chapter24 表單
實例
高階元件ReduxForm
設定
簡單表單
同步驗證表單
非同步失焦驗證表單
傳送表單到伺服器
本章小結
Chapter25 圖表與表格
實例
圖表元件
表格元件
從伺服器取得資料
本章小結
Chapter26 使用者認證
實例
撰寫認證API
發送cookie
撰寫用於認證的action建立函數
登入頁面和導覽列
前端路由保護
本章小結
Chapter27 部署
實例
Heroku平台
持續整合
與生產相關的問題
本章小結
Chapter28 其他資源
線上文件
參與社區活動
致讀者
第一部份 基礎篇
Chapter01 技術簡介
React
Redux
Node與Universal繪製
Babel
Webpack
本章小結
Chapter02 在Node.js中執行React
實例
撰寫React元件
在Node.js中繪製元件
使用Babel編譯執行Node.js程式
本章小結
Chapter03 在瀏覽器中執行React
實例
元件重複使用
在瀏覽器中繪製React元件
使用Webpack包裝編譯
在瀏覽器中執行
本章小結
Chapter04 開發伺服器和熱取代
實例
安裝
設定Babel
設定Webpack
設定Express伺服器
本章小結
Chapter05 React的創新語法:JSX
實例
JSX簡介
JSX常用語法
本章小結
Chapter06 React的資料載體:stat...