单页面应用由于页面过多,可能会导致代码体积过大,从而使得首页打开速度过慢。所以切分代码,优化首屏打开速度尤为重要。
但是所有的技术手段都不是完美的。当我们切割代码后,首屏的js文件体积减少了好多。但是也有一个突出的问题:
那就是当跳转其他页面的时候,需要下载相应页面的js文件,这就导致体验极其不好,每一次点击访问新页面都要等待js文件下载,然后再去请求接口获取数据。频繁出现loading动画的体验真的不好
所以如果我们在进入首页后,在浏览器的空闲时间提前下好用户可能会点击页面的js文件,这样首屏的js文件大小得到了控制,而且再点击新页面的时候,相关的js文件已经下载好了,就不再会出现loading动画。
动态引入js文件,实现code-splitting,减少首屏打开时间
// 代码分割后的react组件 const Brand = asyncComponent(() => import( /*webpackChunkName: 'mp-supports'*/ './views/Brand' )) // 路由引入 <Route path="/" component={App}> <Route path="/brand" component={Brand} /> </Route>
首页组件的生命周期:
// 在接口取的数据后,进行prefetch componentDidUpdate({ topics }) { if( topics.length === 0 && this.props.topics.length > 0 ) { // 实行prefetch,注意只有webpack 4版本才支持prefetch功能。 import( /* webpackPrefetch: true */ /*webpackChunkName: 'topic'*/ "../topic" ) } } prefetch会在主进程空闲后再去加载。 perLoad 和主线程一起加载
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接