详解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 相关文章推荐
使用JS操作页面表格,元素的一些技巧
Feb 02 Javascript
CLASS_CONFUSION JS混淆 全源码
Dec 12 Javascript
jQuery 处理表单元素的代码
Feb 15 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
Apr 12 Javascript
基于jQuery的为attr添加id title等效果的实现代码
Apr 20 Javascript
实例分析js和C#中使用正则表达式匹配a标签
Nov 26 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
Apr 11 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
Dec 13 Javascript
解决element UI 自定义传参的问题
Aug 22 Javascript
优雅的在React项目中使用Redux的方法
Nov 10 Javascript
利用不到200行代码写一款属于你自己的js类库
Jul 08 Javascript
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
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
php daodb插入、更新与删除数据
2009/03/19 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
php字符串截取的简单方法
2013/07/04 PHP
PHP批量上传图片的具体实现方法介绍.
2014/02/26 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
JavaScript修改css样式style
2008/04/15 Javascript
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
完美实现bootstrap分页查询
2015/12/09 Javascript
jQuery事件对象总结
2016/10/17 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
JavaScript格式化json和xml的方法示例
2019/01/22 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
2019/02/14 jQuery
详解Vue底部导航栏组件
2019/05/02 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
2020/09/24 Javascript
python处理PHP数组文本文件实例
2014/09/18 Python
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
Python之文字转图片方法
2018/05/10 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
python实现最大优先队列
2019/08/29 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
input元素的url类型和email类型简介
2012/07/11 HTML / CSS
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
群众路线教育实践活动总结
2014/10/30 职场文书
小学生家长意见
2015/06/03 职场文书
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL