怎么让页面代码分割并且按需加载

这次给大家带来怎么让页面代码分割并且按需加载,让页面代码分割并且按需加载的注意事项有哪些,下面就是实战案例,一起来看一下。

修改配置

开发环境: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});...  

登录后复制

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

怎么让页面代码分割并且按需加载

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

验证结果

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

怎么让页面代码分割并且按需加载

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

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

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

推荐阅读:

vue组件中slot插口使用详解

实现js同源策略与跨域访问步骤详解

以上就是怎么让页面代码分割并且按需加载的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月8日 10:59:23
下一篇 2025年2月18日 09:11:50

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

相关推荐

  • better-scroll插件使用详解(附代码)

    这次给大家带来better-scroll插件使用详解(附代码),better-scroll插件使用的注意事项有哪些,下面就是实战案例,一起来看一下。 better-scroll的使用 由于需要在一个固定的的高度做无限滚动,本来css的ove…

    编程技术 2025年3月8日
    200
  • Angular CLI蓝本生成代码

    这次给大家带来Angular CLI蓝本生成代码,Angular CLI蓝本生成代码的注意事项有哪些,下面就是实战案例,一起来看一下。 这篇文章主要是讲生成 Components, Directive, Service, class, in…

    2025年3月8日 编程技术
    200
  • Vue如何制作图片轮播组件(附代码)

    这次给大家带来Vue如何制作图片轮播组件(附代码),Vue制作图片轮播组件的注意事项有哪些,下面就是实战案例,一起来看一下。 在制作这个组件之前,笔者google了不少关于轮播的文章,发现实现一个轮播的思路虽然各有不同,但是大的逻辑其实差不…

    2025年3月8日 编程技术
    200
  • 通用无限极下拉菜单的实现代码

    这篇文章主要介绍了关于通用无限极下拉菜单的实现代码,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 下拉菜单在我开发中经常遇到,但是没个项目都需要从新编写,改起来虽然简单但是很麻烦,我这个人还是比较懒的,今天有时间把我以前的项…

    编程技术 2025年3月8日
    200
  • JS弹出窗口代码大全

    这篇文章主要介绍了关于js弹出窗口代码大全,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 如何利用网页弹出各种形式的窗口,我想大家大多都是知道些的,但那种多种多样的弹出式窗口是怎么搞出来的,平时利用业余时间整理了一些,需要的…

    编程技术 2025年3月8日
    200
  • diff算法使用详解(附代码)

    这次给大家带来diff算法使用详解(附代码),diff算法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 虚拟dom diff算法首先要明确一个概念就是diff的对象是虚拟dom,更新真实dom则是diff算法的结果 Vnode基类…

    编程技术 2025年3月8日
    200
  • JS实现文件拖拽步骤详解(附代码)

    这次给大家带来JS实现文件拖拽步骤详解(附代码),JS实现文件拖拽的注意事项有哪些,下面就是实战案例,一起来看一下。 1.效果图: 2.源码 #p1 { width: 350px; height: 70px; padding: 10px; …

    2025年3月8日
    200
  • Angular CLI操作蓝本解析代码

    这次给大家带来Angular CLI操作蓝本解析代码,Angular CLI操作蓝本解析代码的注意事项有哪些,下面就是实战案例,一起来看一下。 ng generate 命令. 该命令的格式是 ng generate . 也可以使用&#821…

    2025年3月8日 编程技术
    200
  • vue项目中怎样关闭eslint代码校验

    这次给大家带来vue项目中怎样关闭eslint代码校验,vue项目中关闭eslint代码校验的注意事项有哪些,下面就是实战案例,一起来看一下。 简介eslint eslint是一个JavaScript的校验插件,通常用来校验语法或代码的书写…

    2025年3月8日 编程技术
    200
  • vue快速复制内容到粘贴板(附代码)

    这次给大家带来vue快速复制内容到粘贴板(附代码),vue快速复制内容到粘贴板的注意事项有哪些,下面就是实战案例,一起来看一下。 1 . npm安装到项目目录文件中 npm install clipboard –save 登录后复制 2 …

    2025年3月8日
    200

发表回复

登录后才能评论