隨着React服務端渲染愈來愈流行,筆者也想嚐嚐鮮,通過半個月的折騰,筆者把原先的客戶端渲染項目,經過結合 next.js 構建了一個服務端渲染的同構項目。再加上開啓服務器頁面緩存,以及靜態資源CDN加速優化,最終使得 網站首屏渲染時間在0.6秒(即:DOMContentLoaded 的時間)左右,大大提升了頁面的響應速度,進一步提高用戶體驗。
很顯然,這是移動端網站,選用了 React16 + next.js4 + antd-mobile2 + redux 的技術棧,算是筆者學習React 兩年來第一個服務端渲染的項目。因爲愛折騰,筆者喜歡本身動手搭腳手架,期間參考了各路大牛的源碼和想法,很是感謝!因此此次作下總結,若是剛好能幫到在React服務端渲染方面有困惑的同窗,何樂而不爲?css
react-router
。更多詳情 組件,能夠複用的模塊要寫成組件;不能複用,可是邏輯比較複雜的模塊也應該寫成組件。其他的,都寫在pages裏就好了。組件分爲無狀態組件,和有狀態組件,須要指出的是,在next.js的架構中,若是你寫的是無狀態組件,能夠不用引入 react,如:前端
export default ({ text }) => ( <div className="h100 flex jc-center ai-center"> <i className="i-loading rotate font32 c999" /> <span>{text || '加載中...'}</span> </div> )
npm run export
,資源將被打包到根目錄下的 outCDN 中。