在做个人网站的js拆分打包时,最终的解决方案是看着网上的教程手写了Bundle高阶组件来动态加载需要的组件。对于它的运用也仅仅是把路由拆开,访问不同的顶级路由进行动态加载,并没有对其原理进行深入的理解。直到看到了React 的加载 loading 库——react-loadable。
react-loadable是什么?
Loadable提倡基于组件分割代码。
route-centric code splitting is shit, component-centric splitting is cool as shit.
网上的翻译有很多,本文就不过多对readme操作了,简单的介绍一下就是: Loadable 是一个高阶组件(简单来说,就是把组件作为输入的组件。高阶函数就是把函数作为输入的函数。在 React 里,函数和组件有时是一回事),一个可以构建组件的函数(函数可以是组件),它可以很容易的在组件层面分割代码包。
react-loadable怎么用?
下面是github库里readme给的例子。
import Loadable from 'react-loadable';
import Loading from './my-loading-component';
const LoadableComponent = Loadable({
loader: () => import('./my-component'), // 要按需加载的组件,用了import()函数
loading: Loading, // 一个无状态组件,负责显示"Loading中"
});
export default class App extends React.Component {
render() {
return <LoadableComponent/>;
}
}
my-loading-component.js
import React from 'react';
export default function