详解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 相关文章推荐
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
查询json的数据结构的8种方式简介
Mar 10 Javascript
jQuery实现冻结表头的方法
Mar 09 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
Mar 28 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
Apr 21 Javascript
详解jquery easyui之datagrid使用参考
Dec 05 Javascript
Node+OCR实现图像文字识别功能
Nov 26 Javascript
JavaScript实现选项卡效果的分析及步骤
Apr 16 Javascript
bootstrap table实现iview固定列的效果实例代码详解
Sep 30 Javascript
微信小程序可滑动周日历组件使用详解
Oct 21 Javascript
微信小程序实现多图上传
Jun 19 Javascript
Jquery Fade用法详解
Nov 06 jQuery
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性能测试工具xhprof的详解
2013/06/03 PHP
关于PHPDocument 代码注释规范的总结
2013/06/25 PHP
Destoon模板制作简明教程
2014/06/20 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
js style动态设置table高度
2014/10/21 Javascript
javascript内置对象操作详解
2015/02/04 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
Javascript原生ajax请求代码实例
2020/02/20 Javascript
python执行shell获取硬件参数写入mysql的方法
2014/12/29 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
2019/07/31 Python
Python二元赋值实用技巧解析
2019/10/25 Python
python kafka 多线程消费者&amp;手动提交实例
2019/12/21 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
人力资源经理的岗位职责
2014/03/02 职场文书
图书室标语
2014/06/21 职场文书
合作协议书格式
2014/08/19 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
领导班子党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
初中家长意见
2015/06/03 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android