react路由懒加载(异步组件)------react-loadable(以路由组件分割代码) 或者参考 https://www.cnblogs.com/SRH151219/p/11207919.html
安装
cnpm install react-loadable -S
如果项目有100个页面,那laodable.js就需要写100遍,这样就感觉有点冗余了,所以这个我们可以封装一下
首先,我们建一个util src/util/loadable.js
import React from 'react';
import Loadable from 'react-loadable';
import { Spin } from 'antd';
//通用的过场组件
function loadingComponent() {
return (
<div style={{
display: "flex",
justifyContent: "center",
alignItems: "center",
textAlign: 'center',
"100%",
height: "1000px"
}}> <Spin size="large" /></div >
)
}
//过场组件默认采用通用的,若传入了loading,则采用传入的过场组件
export default (loader, loading = loadingComponent) => {
return Loadable({
loader,
loading
});
}
不难看出,我们可以将按需加载的组件和过渡组件通过参数传入最后返回包装后的组件,
router里面调用方式改为如下
import React, { Fragment } from 'react'
import { BrowserRouter, Route } from 'react-router-dom'
import loadable from '../util/loadable'
const Home = loadable(()=>import('@pages/home'))
const Routes = () => (
<BrowserRouter>
<Route path="/home" component={Home}/>
</BrowserRouter>
);
export default Routes
react-loadable是以组件级别来分割代码的,这意味着,我们不仅可以根据路由按需加载,还可以根据组件按需加载,使用方式和路由分割一样,只用修改组件的引入方式即可
Create-React-app项目首屏加载优化(二)--CDN加速 参考https://www.cnblogs.com/njuclc/p/13359388.html
React 16 加载性能优化指南
https://www.jianshu.com/p/d7c30b590f8a