序
React 是目前前端工程化最先進的技術。2004 年Gmail 的推出,讓大家猛然發現,單頁應用的互動也可以如此流暢。2010 年,前端單頁應用架構接踵而至,Backbone、Knockout、Angular,各領風騷。2013 年,React 從天而降,獨樹一幟:單向綁定、宣告式UI,大幅簡化了大型應用的建置。Strikingly 接觸到React 之後不久,就開始用React 重構前端。
當時我想,2013 年或許會因為React 的出現,成為前端社區的分水嶺。今天回看,確實如此。
毋庸置疑,React 已經是前端社區里程碑式的技術。React 及其生態圈不斷提出前端工程化解決方案,領導潮流。在過去一兩年裡,React 也是各種技術交流分享會裡炙手可熱的議題。
React 之所以流行,在於它平衡了函數式程式設計的約束與工程師的實用主義。
React 從函數式程式設計社區中參考了許多約定:把DOM 當成純函數,不僅免去了煩瑣的手動DOM 操作,還開啟了多平台繪製的美麗新世界;在此之上,React 社區進一步強調不可變性(immutability)和單向資料流程。這幾個約定將原本很複雜的程式化簡,加強了程式的可預測性。
React 也有實用主義的一面,它不強迫工程師只用函數式,而是提供了簡單粗暴的方法,方便你實現各種功能——想直接操作DOM 也可以,想雙向綁定也沒問題。函數式約定搭配實用主義,讓我不禁想起Facebook 一直宣導的駭客之道:Done is better than perfect。
React 還是一種年輕的技術,網上能學習的材料也比較零散。本書由淺到深,一步步地帶領讀者了解React 核心思想和實現機制。因為React 受到了很多關注,社區裡出現了各種建立大型React 應用的方案。本書歸納了目前社區裡的最佳做法,方便讀者立刻在實戰中使用。
郭達峰
Strikingly 聯合創始人及CTO