工信部备案系统网站,网站接入百度地图,扬州市工程信息网,哈尔滨公司做网站lazy 能够让你在组件第一次被渲染之前延迟加载组件的代码。 在组件外部调用 lazy#xff0c;以声明一个懒加载的 React 组件:
import { lazy } from react;const MarkdownPreview lazy(() import(./MarkdownPreview.js));
配合 Suspense 实现懒加载组件
//App.js
imp… lazy 能够让你在组件第一次被渲染之前延迟加载组件的代码。 在组件外部调用 lazy以声明一个懒加载的 React 组件:
import { lazy } from react;const MarkdownPreview lazy(() import(./MarkdownPreview.js));
配合 Suspense 实现懒加载组件
//App.js
import { useState, Suspense, lazy } from react;
import Loading from ./Loading.js;
//将 lazy 组件声明在组件外部
const MarkdownPreview lazy(() delayForDemo(import(./MarkdownPreview.js)));export default function MarkdownEditor() {const [showPreview, setShowPreview] useState(false);const [markdown, setMarkdown] useState(Hello, **world**!);return (textarea value{markdown} onChange{e setMarkdown(e.target.value)} /labelinput typecheckbox checked{showPreview} onChange{e setShowPreview(e.target.checked)} /Show preview/labelhr /
//MarkdownPreview 的代码只有在你尝试渲染它时才会被加载。
//如果 MarkdownPreview 还没有加载完成将显示 Loading。{showPreview (Suspense fallback{Loading /}h2Preview/h2MarkdownPreview markdown{markdown} //Suspense)}/);
}
// 添加一个固定的延迟时间以便你可以看到加载状态
function delayForDemo(promise) {return new Promise(resolve {setTimeout(resolve, 2000);}).then(() promise);
}//Loading.js
export default function Loading() {return piLoading.../i/p;
}//MarkdownPreview.js
import { Remarkable } from remarkable;
const md new Remarkable();
export default function MarkdownPreview({ markdown }) {return (divclassNamecontentdangerouslySetInnerHTML{{__html: md.render(markdown)}}/);
}