本文發表於我的GitHub轉載請註明出處css
簡而言之,同構是服務端直出和客戶端渲染的結合html
固然,同構也沒有這麼好,具體的的選擇仍是看業務的,權衡開發(遷移)成本,性能影響等等諸多因素。react
若是,我嘗試下 React服務端渲染,但又不想本身一開始就糾結於較繁瑣的配置呢?git
不少人的開發都會選用一個現有的腳手架開始,那麼如何選用一個腳手架呢?github
I'm looking for a very simple starter pack... I don't need all the hoopla.
的確,對一個腳手架項目而言,它須要有全部你想要的,不須要有你不想要的。typescript
react官方的腳手架create-react-app的README中提到 現階段不支持直接提供服務端渲染。redux
好比這些:後端
這些腳手架各有各的特色,有的依賴多,有的依賴少,有的性能好,有的針對某一個痛點解決...數組
razzle 是一個把全部於服務端渲染相關的繁瑣配置抽象成了單獨的一個依賴,瀏覽器
給你相似於create-react-app的開發體驗,
可是把剩下的架構決策權,好比 框架選用,路由系統的選擇、數據獲取方式全都交給了開發者本身,充分符合上面說的:
have everything you need and nothing you don't.
razzle 和上述提到的其餘支持同構渲染的框架的 最大不一樣 在於他能過抽象依賴,可以提供相似create-react-app
的開發體驗,這就意味了給了開發者很大的自由度去選擇本身順手的,本身看得上眼的react生態裏的庫,razzle提供豐富的examples,幫助開發者可以快速的結合一些流行的成熟的庫,好比用typescript進行開發,經過結合react-redux作狀態管理,好比經過結合react-router作路由系統,經過結合react-loadable作到組件級別的代碼分割和懶加載等等不少。
項目的主要的優勢有:
理解還不是很成熟,但願能與你們交流討論。
筆者是razzle的項目使用者,受益者,但願能讓更多的人看到這個項目,將來一塊兒讓他更好。