详解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 相关文章推荐
Javascript 兼容firefox的一些问题
May 21 Javascript
javascript制作loading动画效果 loading效果
Jan 14 Javascript
详解JavaScript中undefined与null的区别
Mar 29 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
Jun 09 Javascript
jquery读写cookie操作实例分析
Dec 24 Javascript
jQuery实现div拖拽效果实例分析
Feb 20 Javascript
JavaScript中的原型继承基础学习教程
May 06 Javascript
JS刷新父窗口的几种方式小结(推荐)
Nov 09 Javascript
纯JS代码实现隔行变色鼠标移入高亮
Nov 23 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
Jan 23 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
Mar 21 Javascript
微信小程序左右滑动的实现代码
Dec 15 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
FCKeditor添加自定义按钮
2008/03/27 PHP
php中session使用示例
2014/03/29 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
JS中Iframe之间传值的方法
2013/03/11 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
django model object序列化实例
2020/03/13 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
生物技术毕业生自荐信
2013/10/23 职场文书
商务英语应届生自我鉴定
2013/12/08 职场文书
幼儿园教师工作制度
2014/01/22 职场文书
保安队长职务说明书
2014/02/23 职场文书
数学系毕业生求职信
2014/05/29 职场文书
土建工程师岗位职责
2014/06/10 职场文书
教你用Python写一个植物大战僵尸小游戏
2021/04/25 Python
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技
奥特曼十大神器:奥特手镯在榜,第一是贝利亚的神器
2022/03/18 日漫