详解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 动态加载脚本的4种方法
May 05 Javascript
{}与function(){}选用空对象{}来存放keyValue
May 23 Javascript
js控制表单奇偶行样式的简单方法
Jul 31 Javascript
谈谈JavaScript类型系统之Math
Jan 06 Javascript
最全面的百度地图JavaScript离线版开发
Sep 10 Javascript
JS访问DOM节点方法详解
Nov 29 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 jQuery
ES6下React组件的写法示例代码
May 04 Javascript
jQuery Position方法使用和兼容性
Aug 23 jQuery
jqgrid实现简单的单行编辑功能
Sep 30 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
Apr 15 Javascript
微信小程序实现电子签名功能
Jul 29 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 邮件发送问题解决
2014/03/22 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
PHP创建/删除/复制文件夹、文件
2016/05/03 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
php使用scandir()函数扫描指定目录下所有文件示例
2019/06/08 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
python常规方法实现数组的全排列
2015/03/17 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
以太网Ethernet IEEE802.3
2013/08/05 面试题
乡下人家教学反思
2014/02/01 职场文书
公司建议书怎么写
2014/05/15 职场文书
中职招生先进个人材料
2014/08/31 职场文书
初中团委工作总结
2015/08/13 职场文书
2019年思想汇报
2019/06/20 职场文书
你会写请假条吗?
2019/06/26 职场文书
文书工作总结(范文)
2019/07/11 职场文书
深入浅析React中diff算法
2021/05/19 Javascript
Java基础-封装和继承
2021/07/02 Java/Android
JavaScript中isPrototypeOf函数
2021/11/07 Javascript