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()里面执行
随机推荐
- Django-Rest-Framework的序列化之serializers 序列化组件
Django-Rest-Framework的序列化之serializers 序列化组件 restful framework 正常的序列化 from django.http import HttpRes ...
- Python随笔---return与print,全局变量与局部变量
Return是指返回一个数值,一般在函数中应用较多 Print则是指把结果打印出来,显示在屏幕上 def sum(a,b): total=a+b print('函数内:',total) return ...
- A.dreamstart的催促
题目描述 有一天集训队的学弟们正在计算一堆数,但是dreamstart感觉他们算的太慢了,就让他们坐在一起想出一个快速计算的方法,但是由于他们一时想不出来,想让你帮助他们.他们说现在有一个数列,要算出 ...
- Ubuntu上源码安装golang并设置开发环境
安装go #wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz #tar -xzf go1.10.3.linux-amd64.tar.g ...
- 简单记录下HTTPS中的SSL
大概思路 大概思路是混合加密的方式,即对称加密方式混合非对称加密方式. 非对称加密会更加安全,功能也更强大,但他复杂而且速度慢. 对称加密速度快,但要保证这个公共密钥的正确性和真实性. 所以两者结合, ...
- (转) Linux 下的dd命令使用详解(摘录)
使用dd命令克隆整个系统------http://www.cnblogs.com/jikexianfeng/p/6103504.html 原文:https://www.cnblogs.com/jike ...
- BI的意义
BI系统建设的价值,有可能不值钱,也有可能价值数千万,就看我们大家好用了没.”所以,BI系统建设的收获,终究还是因企业而异的,再归根,便是与企业的文化,与企业的人,尤其是管理层是极为相关的了. 商业智 ...
- Linq Enumerable.Distinct方法去重
Enumerable.Distinct 方法 是常用的LINQ扩展方法,属于System.Linq的Enumerable方法,可用于去除数组.集合中的重复元素,还可以自定义去重的规则. 有两个重载方法 ...
- UIcollectionView 实现 轮番图
UICollectionView 用作轮番图的实现,demo 地址:https://github.com/SummerHH/YJCYCleCollectionVIew #import <UIKi ...
- sql常用操作(二)数据约束
1.1什么是数据约束: 对用户操作表的数据进行约束 1.2 默认值 作用: 当用户对使用默认值的字段不插入值的时候,就使用默认值. 注意: 1)对默认值字段插入null是可以的. 2)对默认值字段可以 ...