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

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

修改配置

开发环境: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

});

...

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

5f222487e15f631bc11f251c15efeb0d.png

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

验证结果

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

0a823376c9628529322b118ba84271b7.png

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

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

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值