react-router4 配合webpack require.ensure 实现异步加载的
网络编程 2021-07-04 17:33www.168986.cn编程入门
本篇文章主要介绍了react-router4 配合webpack require.ensure 实现异步加载的示例,非常具有实用价值,需要的朋友可以参考下
实现异步加载的方法,归根结底大都是根据webpack的require.ensure来实现
第一个是自己使用require.ensure实现,
第二种 使用loader实现
今天我们说的是使用bundle-loader来实现,这样代码更优雅些。
需要安装bundle-loader ,具体使用npm还是yarn,就看你的包管理使用的是啥了。
狼蚁网站SEO优化需要一个bundle.js
import React, { Component } from 'react'; export default class Bundle extends Component { constructor(props) { super(props); this.state = { mod: null }; } ponentWillMount() { this.load(this.props); } ponentWillReceiveProps(nextProps) { if (nextProps.load !== this.props.load) { this.load(nextProps); } } load(props) { this.setState({ mod: null }); props.load(mod => { this.setState({ mod: mod.default ? mod.default : mod }); }); } render() { return this.state.mod ? this.props.children(this.state.mod) : null; } }
然后把bundle.js 引进来,也把需要做异步的文件引进来,前面需要添加
bundle-loader?lazy&name=[name]!
比如
import Bundle from './ponents/bundle.js'; import ListComponent from 'bundle-loader?lazy&name=[name]!./file/List.jsx';
狼蚁网站SEO优化就是添加路由这块的配置
<Route path="/list" ponent={List} />
以及配置output的chunkFilename
chunkFilename: '[name]-[id].[chunkhash:4].bundle.js'
chunkFilename配置好以后,异步加载进来的文件名称就会按照上面的命名方式来展示,如果不配置,就是webpack给生成的数字了。
上面的都配置好了以后,就是怎么使用bundle了,你看到route上配置的ponent对应的是List,所以我们需要写一个List
const List = (props) => ( <Bundle load={ListComponent}> {(List) => <List {...props}/>} </Bundle> );
到这里基本上就配置完了,这个时候你本地重启服务,然后点击对应的路由,就会看到异步记载的jsList-0.094e.bundle.js
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程