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包裹后可以得到一个直接渲染的组件。

参考链接

相关推荐
C.果栗子7 小时前
Blob格式的PDF文件调用打印,浏览器文件打印(兼容)
前端·javascript·pdf
San30.8 小时前
从代码规范到 AI Agent:现代前端开发的智能化演进
javascript·人工智能·代码规范
廾匸6409 小时前
语义化标签
前端·javascript·html
汪汪队立大功1239 小时前
selenium中执行javascript,是否等价于在浏览器console位置执行
javascript·selenium·测试工具
soda_yo11 小时前
搞不懂作用域链?这篇文章让你一眼秒懂!
javascript·面试
apollo_qwe12 小时前
Set 和 Map常用场景代码片段
javascript
q***T58312 小时前
前端路由懒加载实现,React与Vue
前端·vue.js·react.js
Hilaku12 小时前
我为什么说全栈正在杀死前端?
前端·javascript·后端
Jseeza12 小时前
React常见hooks及运用场景梳理(一)——useState、useEffect
react.js
程序猿_极客13 小时前
【期末网页设计作业】HTML+CSS+JS 旅行社网站、旅游主题设计与实现(附源码)
javascript·css·html·课程设计·期末网页设计