React动态import()
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()的更多相关文章
- react动态路由以及获取动态路由
业务中会遇到点击列表跳转到详情页, 1.在index.js修改我们的跟组件 新建router2的文件 import React from 'react' import { HashRouter as ...
- 如何使用classnames模块库为react动态添加class类样式
摘要 在react中添加动态的css时,传统的方式较为繁琐,今天刚好学习到一个模块库可以便捷的解决这个问题.对的,它就是“classnames”. classnames模块库 npm安装 npm in ...
- react 动态渲染echarts折线图,鼠标放大缩小
//折线图组件import React,{Component} from 'react'; import ReactEcharts from 'echarts-for-react'; class Ec ...
- python3 动态import
有些情况下,需要动态的替换引入的包 1.常用的import方法 import platform import os 2.__import__ 动态引用 loop_manager = __import_ ...
- react 动态修改 document.title
装饰器 // withComponents/withHeaderBar.js import React, { Component } from "react"; import He ...
- Element + Vue I18n动态import加载国际化语言包翻译文件
需求 项目为多页应用,包含产品a.b.c.d.e,每个产品都有自己的翻译文件.一次加载所有翻译文件是极度不合理的.于是考虑动态加载. 实现 参考官方文档:延迟加载翻译 项目结构 │ ├── dist ...
- vite 动态 import 引入打包报错解决方案
关注公众号: 微信搜索 前端工具人 ; 收货更多的干货 原文链接: 自己掘金文章 https://juejin.cn/post/6951557699079569422/ 关注公众号: 微信搜索 前端工 ...
- react动态添加样式:style和className
react开发过程中,经常会需要动态向元素内添加样式style或className,那么应该如何动态添加呢??? 一.react向元素内,动态添加style 例如:有一个DIV元素, 需要动态添加一个 ...
- react 动态获取数据
如果reander()里面的dom元素是动态获取的,就要将函数放到setSTATE()里面执行
随机推荐
- selenium IDE插件下载
1.在https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/中下载Firefox的selenium-ide插件: 2.之后在Firef ...
- linux 之基本命令学习总结
前言:从今天开始写这系列linux博客了(是学习刘遄老师的<linux就该这么学>),视频学习的资源可以在b站上找到:https://www.bilibili.com/video/av45 ...
- left join on 和where条件的放置(转)
http://blog.csdn.net/muxiaoshan/article/details/7617533
- BZOJ 4668: 冷战 并查集&&暴力LCA(雾)
利用并查集按秩合并,保存每个点合并的时间: 求时间时,就一直跳u=fa[u],并记录路径上时间的最大值,代表最后一次合并的时间 #include<cstdio> #include<i ...
- How far away(DFS+vector存图)
There are n houses in the village and some bidirectional roads connecting them. Every day peole alwa ...
- Jmeter4.0----编写测试脚本(5)
1.说明 以HTTP请求为例,和小伙伴门分享一下jmeter测试脚本的基本编写步骤 2.步骤说明 第一步:打开jmeter,更改测试计划名称为 Test batchSignForDir(修改计划名称, ...
- 【转】ibatis 中使用select top #pagesize# * from tablename
ibatis中使用select top #num# * from tableName出现错误.由于初次用ibatis还不知道在它里边拼写SQL语句的一些规则,导致一些自认为很平常的SQL语句,在它这里 ...
- babel7中 corejs 和 corejs2 的区别
babel7中 corejs 和 corejs2 的区别 最近在给项目升级 webpack4 和 babel7,有一些改变但是变化不大.具体过程可以参考这篇文章 webpack4:连奏中的进化.只是文 ...
- AJPFX关于Java中运用数组的四种排序方法
JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法.冒泡法.选择排序法.插入排序法.快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现.冒泡法是运用遍历数组进行比 ...
- linux debian 时间设置中无法选择“自动设定时间和日期”
没有安装ntpdate 执行:apt-get install ntpdate ntp.sjtu.edu.cn 202.120.2.101 (上海交通大学网络中心NTP服务器地址)s1a.time.ed ...