详解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 相关文章推荐
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
Feb 03 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
Jun 18 Javascript
固定背景实现的背景滚动特效示例分享
May 19 Javascript
js正则表达式中test,exec,match方法的区别说明
Jan 29 Javascript
IE浏览器不支持getElementsByClassName的解决方法
Aug 27 Javascript
javascript适合移动端的日期时间拾取器
Nov 10 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
Nov 30 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
Dec 31 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
Apr 20 Javascript
JS实现的点击按钮图片上下滚动效果示例
Jan 28 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
May 12 Javascript
layui 数据表格复选框实现单选功能的例子
Sep 19 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
PHP写MySQL数据 实现代码
2009/06/15 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
2014/04/25 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
php实现简单的上传进度条
2015/11/17 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
JS匀速运动演示示例代码
2013/11/26 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
深入解析Vue 组件命名那些事
2017/07/18 Javascript
详解用函数式编程对JavaScript进行断舍离
2017/09/18 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
Vue代码整洁之去重方法整理
2019/08/06 Javascript
python开发之函数定义实例分析
2015/11/12 Python
Python实现求数列和的方法示例
2018/01/12 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
城市轨道交通工程职业规划书范文
2014/01/18 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
分公司经理任命书
2014/06/05 职场文书
工程催款通知书
2015/04/17 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
MySQL数字类型自增的坑
2021/05/07 MySQL
pytorch中的model.eval()和BN层的使用
2021/05/22 Python