react做出按需加载效果

这次给大家带来react做出按需加载效果,react做出按需加载效果的注意事项有哪些,下面就是实战案例,一起来看一下。

虽然一直有做 react 相关的优化,按需加载、dll 分离、服务端渲染,但是从来没有从路由代码分割这一块入手过,昨天在本地开发时没有测试成功,今天又搞了下,已经部署到线上环境了,今天就这个记录一下。

修改配置

开发环境:webpack@v3 、react-router@v4

安装依赖:

$ yarn add babel-plugin-syntax-dynamic-import -dev

登录后复制

修改 .babelrc 文件:在 plugins 中添加 “syntax-dynamic-import”

改造项目代码

安装依赖:

$ yarn add react-loadable

登录后复制

根据 react-loadable 文档提示,我们需要提供一个载入新页面时的 Loading 组件,同时对加载和超时状态进行区别提示:

import React from 'react';import { Icon } from 'antd';const Loading = ({ pastDelay, timedOut, error }) => { if (pastDelay) { return 

; } else if (timedOut) { return

Taking a long time...

; } else if (error) { return

Error!

; } return null;};

登录后复制

更改页面组件导入方法:

import React from 'react';import Loadable from 'react-loadable';import { Route, Switch } from 'react-router-dom';const Home = Loadable({ loader: () => import('../Home'), loading: Loading, timeout: 10000});const EditArticle = Loadable({ loader: () => import('../EditArticle'), loading: Loading, timeout: 10000});...  

登录后复制

然后打包结果就会分离出各页面代码:

react做出按需加载效果

在页面中我们只需要载入入口文件 app.js ,其他脚本在访问到对应页面时都会经由这个文件载入。

验证结果

在将静态资源上传到 cdn 之后,在页面中加载 app.css 和 app.js ,运行之后访问各个页面就会依次加载对应脚本,结果如图:

react做出按需加载效果

可以看到,在访问第一个页面时加载的页面脚本经 gzip 压缩后仅有 21.8KB !!!当然这与页面复杂度也有关,但是相较于加载全部脚本,已经是大幅减少了,这种优化对访问目标性很强的用户感受起来尤为明显。

这么做的另一个好处就是当我们只更改项目中某些页面的业务代码时,其他页面的代码依然是不变的,所以这个时候其他页面用的是客户端缓存,从另一个层面又做了一次优化。

Tips

react-loadable 还有其他配置选项,可以按需配置;

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

vue组件的slot插口使用详解

JS同源策略+跨域访问使用详解

以上就是react做出按需加载效果的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2770098.html

(0)
上一篇 2025年3月8日 12:29:46
下一篇 2025年3月8日 12:29:53

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • jQuery实现旋转幻灯片轮播效果(附代码)

    这次给大家带来jQuery实现旋转幻灯片轮播效果(附代码),jQuery实现旋转幻灯片轮播效果的注意事项有哪些,下面就是实战案例,一起来看一下。 特点 响应式——适应任何视窗的宽度 混合内容 不需要CSS 轻量级( 基于jQuery构建 集…

    2025年3月8日 编程技术
    200
  • jQuery实现动画效果轮播广告

    这次给大家带来jQuery实现动画效果轮播广告,jQuery实现动画效果轮播广告的注意事项有哪些,下面就是实战案例,一起来看一下。 一、需求分析 1. 提供很多尺寸相等的图片,一排紧挨着显示。 2. 左右有两个切换按钮,用来控制显示上一张还…

    2025年3月8日 编程技术
    200
  • jquery拖拽效果实现方法

    这次给大家带来jquery拖拽效果实现方法,jquery拖拽效果实现的注意事项有哪些,下面就是实战案例,一起来看一下。 运行效果截图如下: 点击此处查看在线演示效果。 具体代码如下: html部分: $(function(){ $(“#bo…

    2025年3月8日
    200
  • jQuery实现图片轮播幻灯片效果

    这次给大家带来jQuery实现图片轮播幻灯片效果,jQuery实现图片轮播幻灯片效果的注意事项有哪些,下面就是实战案例,一起来看一下。 $(function(){ $(‘#slides’).slides({ prel…

    2025年3月8日
    200
  • Ajax实现loading等待效果提高用户体验

    这次给大家带来Ajax实现loading等待效果提高用户体验,的注意事项有哪些,下面就是实战案例,一起来看一下。 首先,我们通过ajax请求,向后台传递参数,然后后台经过一系列的运算之后向前台返还数据,我希望在等待数据成功返还之前可以展示一…

    编程技术 2025年3月8日
    200
  • jQuery做出响应式图片轮播效果

    这次给大家带来jQuery做出响应式图片轮播效果,jQuery做出响应式图片轮播效果的注意事项有哪些,下面就是实战案例,一起来看一下。 运行效果截图如下: mislider是一款效果非常酷的jQuery响应式圆形图片轮播图特效插件,misl…

    2025年3月8日
    200
  • Ajax实现Loading效果

    这次给大家带来Ajax实现Loading效果,Ajax实现Loading效果的注意事项有哪些,下面就是实战案例,一起来看一下。 在Ajax进行后台数据请求的过程中,我们有时候会希望用户能知道页面后台还在做一些事情,这时候就需要给用户一个非常…

    编程技术 2025年3月8日
    200
  • jQuery仿支付宝首页焦点图效果

    这次给大家带来jQuery仿支付宝首页焦点图效果,jQuery仿支付宝首页焦点图效果的注意事项有哪些,下面就是实战案例,一起来看一下。 kinMaxShow 扩展效果 body{ margin:0; padding:0;}#Login{ p…

    2025年3月8日 编程技术
    200
  • jQuery实现有幻灯效果tab滑动切换菜单

    这次给大家带来jQuery实现有幻灯效果tab滑动切换菜单,jQuery实现有幻灯效果tab滑动切换菜单的注意事项有哪些,下面就是实战案例,一起来看一下。 这是一款很不错的TAB滑动切换效果,jQuery带幻灯的tab滑动切换风格菜单导航条…

    2025年3月8日
    200
  • react配合antd组件做出后台系统

    这次给大家带来react配合antd组件做出后台系统,react配合antd组件做出后台系统的注意事项有哪些,下面就是实战案例,一起来看一下。 使用create-react-app脚手架 具体基础配置请参考 配合antd组件实现的管理系统d…

    2025年3月8日
    200

发表回复

登录后才能评论