React动态import()

react-router@v4代码分离,推荐的import()。这里分享webpack配置和使用方法。

首先安装两个必须的包

cnpm i react-loadable babel-plugin-syntax-dynamic-import -D

react-loadable是官方推荐的动态加载组件,babel-plugin-syntax-dynamic-import是babel支持webpack的import()插件。

配置方法:在.babelrc

{
"presets": [
"react"
],
"plugins": [
"syntax-dynamic-import"
]
}

上面babel-plugin前缀是可以省略的。

上面配好后,如果你配了eslint还是会报错的,如果eslint配置不对。报import() undefined

要保证eslint不报import()错误需要

cnpm i babel-eslint -D

然后在.eslintrc加上配置

module.exports = {
//...若干配置 parser: "babel-eslint"
}

使用babel-eslint解析才可以识别import()

然后就是使用了_

这里我把官方的demo封装成了一个文件loadable.jsx

import React from 'react'
import Loadable from 'react-loadable' const Loading = () => {
return <div>loading...</div>
} export default (Loader) => {
const LoadableComponent = Loadable({
loader: Loader,
loading: Loading
}) return class LoadableHOC extends React.Component {
render () {
return <LoadableComponent></LoadableComponent>
}
}
}

随便写一个需要动态导入的组件Import.jsx

import React from 'react'

class Import extends React.Component {
render () {
return <div>import...</div>
}
} export default Import

包含的动态导入的容器组件Test.jsx

import React from 'react'
import loadable from '@/utils/loadable' const Import = loadable(() => import('@/components/Import')) class Test extends React.Component {
render () {
return (<div>
<Import></Import>
</div>)
}
} export default Test

然后在main.jsx

import React from 'react'
import ReactDom from 'react-dom'
import Test from '@/components/Test' ReactDom.render(<Test />, document.getElementById('app'))

React动态import()的更多相关文章

  1. react动态路由以及获取动态路由

    业务中会遇到点击列表跳转到详情页, 1.在index.js修改我们的跟组件 新建router2的文件 import React from 'react' import { HashRouter as ...

  2. 如何使用classnames模块库为react动态添加class类样式

    摘要 在react中添加动态的css时,传统的方式较为繁琐,今天刚好学习到一个模块库可以便捷的解决这个问题.对的,它就是“classnames”. classnames模块库 npm安装 npm in ...

  3. react 动态渲染echarts折线图,鼠标放大缩小

    //折线图组件import React,{Component} from 'react'; import ReactEcharts from 'echarts-for-react'; class Ec ...

  4. python3 动态import

    有些情况下,需要动态的替换引入的包 1.常用的import方法 import platform import os 2.__import__ 动态引用 loop_manager = __import_ ...

  5. react 动态修改 document.title

    装饰器 // withComponents/withHeaderBar.js import React, { Component } from "react"; import He ...

  6. Element + Vue I18n动态import加载国际化语言包翻译文件

    需求 项目为多页应用,包含产品a.b.c.d.e,每个产品都有自己的翻译文件.一次加载所有翻译文件是极度不合理的.于是考虑动态加载. 实现 参考官方文档:延迟加载翻译 项目结构 │ ├── dist ...

  7. vite 动态 import 引入打包报错解决方案

    关注公众号: 微信搜索 前端工具人 ; 收货更多的干货 原文链接: 自己掘金文章 https://juejin.cn/post/6951557699079569422/ 关注公众号: 微信搜索 前端工 ...

  8. react动态添加样式:style和className

    react开发过程中,经常会需要动态向元素内添加样式style或className,那么应该如何动态添加呢??? 一.react向元素内,动态添加style 例如:有一个DIV元素, 需要动态添加一个 ...

  9. react 动态获取数据

    如果reander()里面的dom元素是动态获取的,就要将函数放到setSTATE()里面执行

随机推荐

  1. 洛谷P1337 [JSOI2004]平衡点 / 吊打XXX(模拟退火)

    传送门 先坑着,联赛活着回来的话我就写(意思就是我绝对不会写了) //minamoto #include<cstdio> #include<cmath> #include< ...

  2. pycharm安装教程,汉化教程,以及正版激活码---

    密钥在下面 安装过程 PyCharm2019本地下载: http://www.100c1.com/upload/default/20190420/1c08a3209029093a8b34df941f1 ...

  3. mysql--浅谈子查询1

    这是对自己学习燕十八老师mysql教程的总结,非常感谢燕十八老师. 依赖软件:mysql5.6 系统环境:win 子查询概念 子查询就是在原有的查询语句中嵌入新的查询 子查询分类 1.where型子查 ...

  4. 福昕阅读器把pdf某一页保存出来

    第一步: 第二步: 第三步: 第四步:点击保存即可

  5. ubuntu中安装vsftp

    1.安装 $ sudo apt-get install vsftpd 2. 配置 需要配置文件/etc/vsftpd.conf 来进行设置参数以对FTP进行控制,包括访问权限,流量等进行控制. 执行s ...

  6. Java ActiveMQ 示例

    所需引入Jar包: jms-1.1.jar activemq-all-5.15.0.jar 生产者 package com.mousewheel.demo; import javax.jms.Conn ...

  7. UI2_同步下载

    // // ViewController.m // UI2_同步下载 // // Created by zhangxueming on 15/7/17. // Copyright (c) 2015年 ...

  8. 切记切记:Spring配置文件中,Component-scan无法扫描到的类中的自动装配对象无法被调用,报空指针错误。

    Spring单例注入,单例对象可设置成Spring元件. 只有Spring的元件中@Autowired才有用,在普通类中@Autowired虽然不会编译报错,但运行时会报空指针错误.

  9. rest_framework序列化组件

    一.Django自带的序列化组件  ==>对象序列化成json格式的字符串 from django.core import serializers from django.core import ...

  10. css中伪类/伪元素详解

    一.伪类和伪元素 伪类和伪元素都是用来修饰不在文档树中的部分,区别在于, 伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的(如:hover/:active). ...