1
13
单页应用程序(spa)通常通过下载 HTML5 history API . 这创造了一个难以置信的强大的用户体验,因为浏览器永远不需要 刷新 要加载应用程序的任何部分,您可以立即从一个页面/URL导航到另一个页面/URL。
有许多人试图纠正这一点- asynchronous and deferred loading of scripts 大块 -这样做的目的是尽快下载应用程序的核心或关键部分,然后按需加载其余代码。这解决了上面提到的问题,但是实现代码分裂却非常困难。
其中一个原因是,像Webpack这样的工具很难找到有效地拆分代码的方法,只需较少的人工干预。在里面
AMD
世界,
在这个世界上,
这个
考虑下面的片段:
在上面的代码中,React可以立即用
Suspense 是React 16.6中的新API。 并行渲染 ,上面的代码确保React渲染应用程序的速度非常快(比React 16快)。它之所以能够这样做,是因为React知道哪些部分是关键的,哪些部分不是关键的。 blog post 通过代码示例讨论了所有3个特性。 |
2
4
它允许您延迟加载另一个组件的脚本。如果该脚本与其他脚本(例如,不是主捆绑包的一部分)是分开的,那么这将非常有用。
当然,也有缺点:
像往常一样,对某些项目来说,取舍是一种方式,而对其他项目来说,取舍是另一种方式。一个大的单页应用程序,有许多用户可能会或可能不会访问的部分可能会受益;一个很小的页面,其中所有的组件可能都在早期呈现,但可能不会。 |
3
4
简单地说,如果您延迟加载的组件没有被使用,它就不会被下载到浏览器中。
你可以继续下去
CodeSandbox
当你检查
deployed site
在Netlify,
无耻的塞子 :如果您想了解更多关于其他用例的信息,请查看我的博客, Loading React Components Dynamically on Demand using React.lazy . |
4
1
当单页应用程序开始变大时。一次加载所有javascript是没有意义的。假设你在主页上,为Profile部分加载javascript是没有意义的,它会减慢主页的页面加载速度。因此,代码将您的巨大应用程序分割成相当大的块将使应用程序的性能更好。简言之
|
5
1
基本上,对于普通导入,它将导入父组件所需的所有子组件。但是,对于延迟加载的子组件,它是异步加载的。当子组件本身包含许多其他子组件层次结构时,这确实有助于节省父组件的初始加载时间,并最终延长主页面的加载时间。但是,当对组件使用Lazyloading时,您要lazyload的组件必须用带有fallback属性的“suspence”标记括起来,因为当加载父组件并且随后加载fallback属性中提供的jsx时,延迟加载组件的内容将不可用。 |
Softly · 单选按钮未按预期取值 1 年前 |
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
assembler · Nextjs没有处理发布请求 1 年前 |
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
Toniq · javascript为php保存多维数组 1 年前 |