详解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 相关文章推荐
网上抓的一个特效
May 11 Javascript
JavaScript四种调用模式和this示例介绍
Jan 02 Javascript
jquery实现相册一下滑动两次的方法
Feb 09 Javascript
JS获得图片alt信息的方法
Apr 01 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
Nov 18 Javascript
学习jQuey中的return false
Dec 18 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
Jan 26 Javascript
vue.js中created方法作用
Mar 30 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
May 30 Javascript
微信小程序npm引入vant-weapp的踩坑记录
Aug 01 Javascript
Vue.js中v-for指令的用法介绍
Mar 13 Vue.js
vue/cli 配置动态代理无需重启服务的方法
May 20 Vue.js
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设置session值和cookies的学习示例
2014/03/21 PHP
PHP is_subclass_of函数的一个BUG和解决方法
2014/06/01 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
php输出图像的方法实例分析
2017/02/16 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
2011/11/30 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
Javascript之Number对象介绍
2016/06/07 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
vue编写简单的购物车功能
2021/01/08 Vue.js
分享一个常用的Python模拟登陆类
2015/03/29 Python
numpy数组拼接简单示例
2017/12/15 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
银行会计财务工作个人的自我评价
2013/10/29 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
感恩的心主题班会
2015/08/12 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers