要知道按需加載分2種類型的文件
- 按需加載組件
- 按需加載redux模塊
我們平時用的loadable只是按需加載其中的組件
按需加載組件有4種方法:
- bundle-loader
代碼搞得太長
- react-loadable
- 在react-v16.6之後可以使用React.lazy和React.Suspense替換react-loadable
至於替換後的優點,目前只知道減少了2k大小的react-loadable庫。。
- 自定義lazyComponent
按需異步加載redux模塊
精髓:replaceReducer
Redux store 的動態注入
使用dva時,如何動態注入store
精髓:dynamic
看下dynamic源碼可以看到也是利用了replaceReducer改寫reducer和saga。其思路跟Redux store 的動態注入一樣。
參考:
- React Router v4 之代碼分割:從放棄到入門
- react按需加載
- 在react-router4中進行代碼拆分(基於webpack)
- 使用 React.Suspense 替換 react-loadable
- 從boilerplate中學到的redux裏replaceReducer的按需使用
- Redux store 的動態注入
- dva-dynamic使用與實現