为什么延迟加载不是React的默认设置?

翻转

我只是在完成一个React课程,当前的话题是延迟加载。

我想知道为什么延迟加载不是默认值,并且由React负责而不强迫开发人员编写重复代码?

例:

在此过程中,我们希望延迟加载Posts组件,因为在此组件中,我们仅在特定路线上进行渲染。因此,他取代

import Posts from './containers/posts'

const Posts = React.lazy(() => import('./containers/posts'))

并在替换的地方使用

<Route path='/posts' component={Posts}>

<Route
  path='/posts'
  render={() => (
    <Suspense>
      <Posts>
    </Suspense)}
>

所以基本上只是将我们要延迟加载的组件包装到某个React组件中。

暗淡

React不会自行处理延迟加载,而是依靠底层捆绑程序(Webpack)的功能。特别是,捆绑程序将import()语句(这是动态import建议)转换为大多数浏览器都可以处理的内容。因此,要强制执行底层构建过程以延迟加载特定模块,还必须使用import()

通常,将其拆分为多个块(使用延迟加载时在构建时会发生这种情况)可能会很好(例如,对于移动用户,如@Prashant Adhikari所述),但由于文件具有首先通过网络进行传输。因此,也不是到处都有延迟加载的选项。实际上,此问题将来可能会消失(特别是在HTTP / 2中使用一些“智能”预加载机制),但是对于大多数应用程序来说,最近几年的最佳实践似乎是为与应用程序相关的应用程序生成一个胖JS文件。脚本以及vendor.js依赖项。

但是,为了最小化页面加载时间,引入延迟加载可能是合理的。Esp。对于较大的应用程序(例如Stack Overflow),预先加载描述主要内容所需的模块(例如Questions)并延迟加载频率较低的页面(例如User settings是有意义的

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

rsync:为什么“快速检查”是默认设置,但“ --times”不是默认设置?

来自分类Dev

为什么默认设置Request [“ url”]?

来自分类Dev

为什么storeConfigInMeta:false不是Ember CLI中的默认设置?

来自分类Dev

ZFS为什么不是FreeBSD全新安装的默认设置?

来自分类Dev

为什么TokenAwarePolicy不是Datastax Java驱动程序的默认设置

来自分类Dev

为什么生产 rails 应用程序的默认设置不是 `config.force_ssl = true`?

来自分类Dev

为什么Rhythmbox再次成为默认设置?

来自分类Dev

为什么Rhythmbox再次成为默认设置?

来自分类Dev

JScrollPane的默认设置是什么

来自分类Dev

为什么复共轭转置Matlab中的默认设置

来自分类Dev

为什么TRANSACTION_READ_COMMITTED是Java中的默认设置?

来自分类Dev

为什么Arial Black在CorelDRAW中默认设置为斜体?

来自分类Dev

为什么CONCAT_NULL_YIELDS_NULL是SQL Server中的默认设置?

来自分类Dev

`st_buffer` 中的 `dist` 参数默认设置为什么单位?

来自分类Dev

@Dependent范围不是Wildfly中的默认设置吗?

来自分类Dev

Chromium 使用 Gimp 打开 PDF,而不是系统默认设置

来自分类Dev

为什么加载延迟集合

来自分类Dev

Inkscape的默认设置?

来自分类Dev

Unity默认设置

来自分类Dev

spring data neo4j 3.0.0-为什么默认设置两个标签

来自分类Dev

(AWS / EC2 / EBS)为什么对于根设备,“终止时删除”默认设置为true?

来自分类Dev

为什么将双精度型变量作为函数参数传递时默认设置为int?

来自分类Dev

weka中SVM的默认设置是什么?

来自分类Dev

gcc -march选项的默认设置是什么?

来自分类Dev

“ / etc / hosts”和“ / etc / hostname”的默认设置是什么?

来自分类Dev

weka中SVM的默认设置是什么?

来自分类Dev

QUIC协议的Chrome默认设置是什么?

来自分类Dev

“ / etc / hosts”和“ / etc / hostname”的默认设置是什么?

来自分类Dev

如何设置默认设置

Related 相关文章

  1. 1

    rsync:为什么“快速检查”是默认设置,但“ --times”不是默认设置?

  2. 2

    为什么默认设置Request [“ url”]?

  3. 3

    为什么storeConfigInMeta:false不是Ember CLI中的默认设置?

  4. 4

    ZFS为什么不是FreeBSD全新安装的默认设置?

  5. 5

    为什么TokenAwarePolicy不是Datastax Java驱动程序的默认设置

  6. 6

    为什么生产 rails 应用程序的默认设置不是 `config.force_ssl = true`?

  7. 7

    为什么Rhythmbox再次成为默认设置?

  8. 8

    为什么Rhythmbox再次成为默认设置?

  9. 9

    JScrollPane的默认设置是什么

  10. 10

    为什么复共轭转置Matlab中的默认设置

  11. 11

    为什么TRANSACTION_READ_COMMITTED是Java中的默认设置?

  12. 12

    为什么Arial Black在CorelDRAW中默认设置为斜体?

  13. 13

    为什么CONCAT_NULL_YIELDS_NULL是SQL Server中的默认设置?

  14. 14

    `st_buffer` 中的 `dist` 参数默认设置为什么单位?

  15. 15

    @Dependent范围不是Wildfly中的默认设置吗?

  16. 16

    Chromium 使用 Gimp 打开 PDF,而不是系统默认设置

  17. 17

    为什么加载延迟集合

  18. 18

    Inkscape的默认设置?

  19. 19

    Unity默认设置

  20. 20

    spring data neo4j 3.0.0-为什么默认设置两个标签

  21. 21

    (AWS / EC2 / EBS)为什么对于根设备,“终止时删除”默认设置为true?

  22. 22

    为什么将双精度型变量作为函数参数传递时默认设置为int?

  23. 23

    weka中SVM的默认设置是什么?

  24. 24

    gcc -march选项的默认设置是什么?

  25. 25

    “ / etc / hosts”和“ / etc / hostname”的默认设置是什么?

  26. 26

    weka中SVM的默认设置是什么?

  27. 27

    QUIC协议的Chrome默认设置是什么?

  28. 28

    “ / etc / hosts”和“ / etc / hostname”的默认设置是什么?

  29. 29

    如何设置默认设置

热门标签

归档