详解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 相关文章推荐
为Yahoo! UI Extensions Grid增加内置的可编辑器
Mar 10 Javascript
JavaScript 异步调用框架 (Part 6 - 实例 &amp; 模式)
Aug 04 Javascript
理解Javascript闭包
Nov 01 Javascript
js动画效果制件让图片组成动画代码分享
Jan 14 Javascript
Jquery中基本选择器用法实例详解
May 18 Javascript
JQuery遍历DOM节点的方法
Jun 11 Javascript
Bootstrap3学习笔记(三)之表格
May 20 Javascript
JS与jQuery实现隔行变色的方法
Sep 09 Javascript
Vue 换肤的示例实践
Jan 23 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
Mar 01 Javascript
angular4 共享服务在多个组件中数据通信的示例
Mar 30 Javascript
微信小程序全选多选效果实现代码解析
Jan 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
php表单提交与$_POST实例分析
2015/01/26 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
Laravel find in set排序实例
2019/10/09 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
javascript对象的相关操作小结
2016/05/16 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
Python操作mongodb数据库进行模糊查询操作示例
2018/06/09 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
哪些情况下不应该使用索引
2015/07/20 面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
办公室助理岗位职责
2013/12/25 职场文书
文明演讲稿范文
2014/05/12 职场文书
团日活动总结报告
2014/06/25 职场文书
军人离婚协议书样本
2014/10/21 职场文书
机关作风建设心得体会
2014/10/22 职场文书
2014年环保工作总结
2014/11/26 职场文书
小学老师对学生的评语
2014/12/29 职场文书
2015年学校精神文明工作总结
2015/05/27 职场文书
黑白记忆观后感
2015/06/18 职场文书