React中组件加载优化

在web开发的时候往往逃不开性能优化问题。所谓的性能优化,直白来讲就是加快系统的响应速度。网络速度是固定的,那最好的解决办法就是减少单次请求文件的大小。这时候就需要对我们的项目文件在生成时做拆包处理。此处推荐一个插件react-loadable来解决这个问题。

npm i react-loadable # 安装插件

没有使用插件之前

在没有使用react-loadable插件之前,我们来看一下react项目中路由切换的时候js文件的加载情况。当做路由切换的时候不会有新的js文件加载,我们所有的js文件在第一次页面初始化的时候已经全部加载进来。

image.png
import Login from "../pages/login";
import PageNotFound from "../pages/page_not_found";
import ArticleList from "../pages/admin/article";
import ArticleEdit from "../pages/admin/article/edit";
...

使用插件之后

可以看到页面切换的时候会加载*.chunk.js文件,这是每一个路由对应的组件在调用的时候被动态加载进来。


image.png

对现有的代码做一个简单的封装即可

utils/loadable.js

import React from "react";
import Loadable from "react-loadable";

const LoadingComponent = () => {
  return <div>加载中</div>;
};

export default (loader, loading = LoadingComponent) => {
  return Loadable({
    loader,
    loading
  });
};

路由组件的引入,注意文件的区别。使用刚才封装好的方法进行对组件调用的简单封装处理。

import loadable from "../utils/loadable";
// import Login from "../pages/login";
// import PageNotFound from "../pages/page_not_found";
// import ArticleList from "../pages/admin/article";
// import ArticleEdit from "../pages/admin/article/edit";

const Login = loadable(() => import("../pages/login"));
const PageNotFound = loadable(() => import("../pages/page_not_found"));
const ArticleList = loadable(() => import("../pages/admin/article"));
const ArticleEdit = loadable(() => import("../pages/admin/article/edit"));
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 欢迎访问我的最佳实践网站 一个动态导入加载组件的高阶组件. 示例 用户反馈: "我现在非常痴迷于: create-...
    lxg1986阅读 26,586评论 0 24
  • 前言 react+webpack4搭建前端项目分为三个章节。链接如下。目的是实现从零搭建一个react后台管理系统...
    小猿_Luck_Boy阅读 11,960评论 10 17
  • 今天的React题没有太多的故事…… 半个月前出了248个Vue的知识点,受到很多朋友的关注,都强烈要求再出多些R...
    浪子神剑阅读 13,412评论 6 106
  • 还不曾靠近,还不曾远去。 潇潇细雨,风中羁旅。独自漫步,浪迹花都。静静走过一条小道,偶得闲情雅致,与万物相遇。遇见...
    LR逸凡阅读 1,950评论 0 0
  • 情景 假如你在本地的虚拟机或者内网服务器下部署了gitlab,将版本控制本地化或内网化,那如何实现将本地的gitl...
    Stargazes阅读 8,242评论 0 1

友情链接更多精彩内容