React 之 Suspense和lazy

一. Suspense

参考链接:https://react.docschina.org/reference/react/Suspense

suspense:n. 焦虑、悬念

<Suspense> 允许你显示一个退路方案(fallback)直到它的所有子组件完成加载。

js 复制代码
<Suspense fallback={<Loading />}>
  <SomeComponent />
</Suspense>

二. lazy

lazy的实现类似于如下asyncComponent的实现代码:

js 复制代码
function asyncComponent(importComponent) {
	class AsyncComonent extends React.Component {
		constructor(props) {
			super(props);
			this.state = {
				com: null
			}
		}
		async componentDidMount() {
			const { default: com } = await importComponent();
			this.setState({
				com
			});
		}
		render() {
			const C = this.state.com;
			return C ? <C ...{this.props} /> : null;
		}
	}

}
const routers = {
	demo: {
		path: '/homepage',
		renderComponent: asyncComponent(() => import('../homepage/main.jsx'))
	}
}

:使用import()动态导入后返回一个promise,但是通过lazy包裹后可以得到一个直接渲染的组件。

参考链接

相关推荐
土豆12504 小时前
React-Draggable 快速上手指南
react.js
云中飞鸿6 小时前
函数:委托
javascript
老前端的功夫7 小时前
前端技术选型的理性之道:构建可量化的ROI评估模型
前端·javascript·人工智能·ubuntu·前端框架
狮子座的男孩7 小时前
js函数高级:04、详解执行上下文与执行上下文栈(变量提升与函数提升、执行上下文、执行上下文栈)及相关面试题
前端·javascript·经验分享·变量提升与函数提升·执行上下文·执行上下文栈·相关面试题
爱学习的程序媛8 小时前
《JavaScript权威指南》核心知识点梳理
开发语言·前端·javascript·ecmascript
乐观主义现代人8 小时前
go 面试
java·前端·javascript
2501_941886869 小时前
多语言微服务架构下的微服务熔断与限流优化实践
javascript
tsumikistep9 小时前
【前后端】Vue 脚手架与前端工程结构入门指南
前端·javascript·vue.js
慧慧吖@10 小时前
关于在本地去模拟生产环境检测页面内容注意事项
前端·javascript·vue.js
黄团团10 小时前
Vue2整合Electron开发桌面级应用以及打包发布(提供Gitee源码)
前端·javascript·vue.js·elementui·electron