详解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 相关文章推荐
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
Nov 25 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
Nov 15 Javascript
jquery自定义函数的多种方法
Jan 09 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
Jan 28 Javascript
jquery操作select大全
Apr 25 Javascript
javascript中parseInt()函数的定义和用法分析
Dec 20 Javascript
JavaScript实现窗口抖动效果
Oct 19 Javascript
javascript判断firebug是否开启的方法
Nov 23 Javascript
JavaScript实现多栏目切换效果
Dec 12 Javascript
原生Javascript插件开发实践
Jan 18 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
Aug 24 Javascript
详解vue-video-player使用心得(兼容m3u8)
Aug 23 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 错误之引号中使用变量
2009/05/04 PHP
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
百度留言本js 大家可以参考下
2009/10/13 Javascript
Knockoutjs快速入门(经典)
2012/12/24 Javascript
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
ie 7/8不支持trim的属性的解决方案
2014/05/23 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
2015/12/28 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
如何高效使用Python字典的方法详解
2017/08/31 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
详解python 爬取12306验证码
2019/05/10 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
python如何写try语句
2020/07/14 Python
html5 canvas-1.canvas介绍(hello canvas)
2013/01/07 HTML / CSS
html5读取本地文件示例代码
2014/04/22 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
英国领先的维生素和营养补充剂直接供应商:Healthspan
2019/04/22 全球购物
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
小学教师听课制度
2014/02/01 职场文书
团队口号大全
2014/06/06 职场文书
收款委托书
2014/10/14 职场文书
2014年财务部工作总结
2014/11/11 职场文书
2014年文秘工作总结
2014/11/25 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
2019销售早会主持词
2019/06/27 职场文书
python标准库ElementTree处理xml
2022/05/20 Python