美文网首页
react异步组件

react异步组件

作者: 泡杯感冒灵 | 来源:发表于2022-04-05 16:38 被阅读0次
正常情况下,我们进入项目,在各个页面跳转,这个时候,在控制台可以看到,只加载了bundle.js文件。也就是说,我们所有页面对应的组件的代码都在这个bundle.js里边。
想象一下,当我们只访问首页的时候,其他页面的代码也被一起加载了,如果项目很庞大复杂,bundle.js文件体积很大,那么首页加载的速度就会很慢。我们希望的是,当我们访问首页的时候,就加载首页的代码,当我们访问详情页面的时候,就加载详情页面的代码。这个时候就需要借助异步组件来实现。
异步组件底层比较复杂,但是我们可以通过封装起来的第三方模块来实现会非常简单。
以简书项目为例,我如果想让详情页面通过异步的方式加载,需要怎么做呢?
  • 安装react-loadable npm install react-loadable
  • 在detail文件夹下创建 loadable.js文件
// loading方法需要jsx,所以需要引入react以解析jsx语法
import react from 'react';
import Loadable from 'react-loadable';

const LoadableComponent = Loadable({
  // 通过import 异步加载 当前目录下 index.js 也就是detail这个组件
  loader: () => import('./'),
  // 加载是需要时间的,在加载完成之前通过loading函数,返回要显示的内容
  loading(){
      return <div>正在加载。。。</div>
  }
});

// 无状态组件把LoadableComponent组件返回出去
export default () => <LoadableComponent/>
  • 然后 App.js里引入Detail的时候,不是引入 detail下的index.js了,而是引入 detail下的loadable.js
import Detail from './pages/detail/loadable';
然后,当我们再次访问首页的时候,加载的bundle.js里,就没有detail的组件代码了,当我们进入到详情页面,就会加载详情页面的组件代码。
image.png

相关文章

  • react记录 二

    目录 一.react异步加载组件,分模块加载,提高打开性能 二. 三. 四. 一.react异步加载组件,分模块加...

  • React 异步组件

    React 通过react-loadable实现异步组件 在一般的react项目中在性能优化方面除了减少各种静态资...

  • react异步组件

    正常情况下,我们进入项目,在各个页面跳转,这个时候,在控制台可以看到,只加载了bundle.js文件。也就是说,我...

  • Recoil学习(三)---异步、同步

    Recoil通过数据流图将数据及衍生数据映射给组件,其真正强大之处是可异步,我们可以react组件中使用异步函数。...

  • react异步加载组件

    ☼ 注:笔者的文章是根据自己当前项目做的笔记,具体应用请参照自己实际项目情况 1、在根目录新建一个asyncLoa...

  • react异步加载组件

    实用方法

  • react 异步加载组件

  • react异步加载组件与代码分割

    继续学习github高赞项目react-pxq 项目router中引入了路由组件,使用了异步加载的模式 异步加载组...

  • this.setState是同步还是异步

    1、在组件的生命周期或者React合成事件中,是异步 2、在setTimeout或者原生dom事件中,是同步 异步...

  • react-router4.x 按需加载的实现方式

    第一种 create-react-app文档给的react-router按需加载实现: 创建一个异步组件 As...

网友评论

      本文标题:react异步组件

      本文链接:https://www.haomeiwen.com/subject/tlbksrtx.html