React.lazy和React.Suspense异步加载组件

Posted mengff

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React.lazy和React.Suspense异步加载组件相关的知识,希望对你有一定的参考价值。

在React16.6中引入了React.lazy和React.Suspense,这两个组件,可以用来实现异步加载组件。

例如:

const johanComponent = React.lazy(() => import(/* webpackChunkName: "johanComponent" */ ‘./myAwesome.component‘));
 
export const johanAsyncComponent = props => (
  <React.Suspense fallback={<Spinner />}>
    <johanComponent {...props} />
  </React.Suspense>
);

对比react-loadable,React.Suspense还是有一些不足。

1. 加载组件缺少delay参数,不能解决请求快速完成时的"闪烁"问题,需要自己封装

2. 没有内置的加载错误处理方法,需要自己去处理

 

仍然推荐使用react-loadable来异步加载组件,暂时不用React.Suspense。

 

参考:https://blog.csdn.net/roamingcode/article/details/85946380

以上是关于React.lazy和React.Suspense异步加载组件的主要内容,如果未能解决你的问题,请参考以下文章

使用 React Suspense 和 React.lazy 子组件进行 Jest/Enzyme 类组件测试

React-router-dom + Suspense:gh-pages 部署中的问题

React.lazy与Suspence实现延迟加载

每周分享第 1 期(2019.4.6)

如何将从远程 API 获取的初始数据与 React.Suspense 集成?

React:Suspense的实现与探讨