详解React开发中使用require.ensure()按需加载ES6组件


Posted in Javascript onMay 12, 2017

首先介绍下动态加载函数:

require.ensure([], (require)=>{
  let A = require('./a.js').default;
})

如果想要动态加载出es6代码组件,直接require一个es6风格的组件是不行的,因为一般的语言编译工具(如babel),不支持直接require一个es6风格的组件。

那么有种办法可以解决:在es6方式书写的组件底部增加一句:module.exports = YouclassName;

import React, {Component} from 'react';

export default class Father extends Component {
  constructor (props)=>{
    super();
    this.state = {
      currentComponent:null
    }
  }

  doSomething = () => {
    require.ensure(['./app2'], (require) => {
      const Comp = require('./app2');
      this.setState({
        currentComponent:<Comp />
      })
    })
  }

  render () {
    return (
      <div>
        <span onClick={this.doSomething} >
          点击后,按需加载模块~
        </span>
        {this.state.currentComponent}
      </div>
    )
  }
}

app2

import React,{Component} from 'react';
export default class Hello extends Component {
  render () {
    return (
      <div>你好,祝你幸福,再见~</div>
    )
  }
}


module.exports= Hello;

因为在require.ensure()中使用了require()引入模块,所以组件后必须用module.exports导出组件;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 进度条 实现代码
Jul 30 Javascript
jquery form表单提交插件asp.net后台中文解码
Jun 12 Javascript
javascript获取四位数字或者字母的随机数
Jan 09 Javascript
JavaScript判断用户名和密码不能为空的实现代码
May 16 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
May 20 Javascript
详解Bootstrap的iCheck插件checkbox和radio
Aug 24 Javascript
React.Js添加与删除onScroll事件的方法详解
Nov 03 Javascript
Node.js readline模块与util模块的使用
Mar 01 Javascript
JS实现区分中英文并统计字符个数的方法示例
Jun 09 Javascript
vue中npm包全局安装和局部安装过程
Sep 03 Javascript
JS动态图片的实现方法完整示例
Jan 13 Javascript
Threejs实现滴滴官网首页地球动画功能
Jul 13 Javascript
vue学习笔记之指令v-text &amp;&amp; v-html &amp;&amp; v-bind详解
May 12 #Javascript
JS常用正则表达式总结【经典】
May 12 #Javascript
vue.js的安装方法
May 12 #Javascript
JS匹配日期和时间的正则表达式示例
May 12 #Javascript
js如何获取网页所有图片
May 12 #Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
May 12 #Javascript
jQuery手风琴的简单制作
May 12 #jQuery
You might like
SONY ICF-SW7600的电路分析
2021/03/02 无线电
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
开发大型 PHP 项目的方法
2007/01/02 PHP
PHP sprintf()函数用例解析
2011/05/18 PHP
PHP数组操作汇总 php数组的使用技巧
2011/07/17 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
php+mysql实现无限级分类
2015/11/11 PHP
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
AngularJS Bootstrap详细介绍及实例代码
2016/07/28 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
vue实现自定义多选按钮
2020/07/16 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
jupyter notebook实现显示行号
2020/04/13 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
Python调用JavaScript代码的方法
2020/10/27 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
护士见习期自我鉴定
2014/02/08 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
如何用JS实现简单的数据监听
2021/05/06 Javascript
SpringAop日志找不到方法的处理
2021/06/21 Java/Android