详解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使用for循环查询数组中是否存在某个值
Aug 12 Javascript
使用js画图之画切线
Jan 12 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
JavaScipt选取文档元素的方法(推荐)
Aug 05 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
Oct 30 Javascript
教你一步步用jQyery实现轮播器
Dec 18 Javascript
js实现返回顶部效果
Mar 10 Javascript
laravel5.4+vue+element简单搭建的示例代码
Aug 29 Javascript
Vue中的Props(不可变状态)
Sep 29 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
Nov 10 Javascript
vue配置nprogress实现页面顶部进度条
Sep 21 Javascript
js前端图片加载异常兜底方案
Jun 21 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
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
php学习笔记之 函数声明
2011/06/09 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
2012/04/09 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
原生javascript实现的ajax异步封装功能示例
2016/11/03 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
layui table单元格事件修改值的方法
2019/09/24 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
python统计文本文件内单词数量的方法
2015/05/30 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
Django admin美化插件suit使用示例
2017/12/12 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
店长岗位职责
2013/11/21 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
会议欢迎词
2015/01/23 职场文书
2015年党风廉政建设责任书
2015/01/29 职场文书
社区元宵节活动总结
2015/02/06 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书