【问题标题】:Understanding lazy load and hydration in nuxt了解 nuxt 中的延迟加载和水合作用
【发布时间】:2022-01-12 16:08:13
【问题描述】:

第一个问题

当我将 Lazy load 与 nuxt 和 components: true 一起使用时
例如

<div v-if="condition"> <!-- 1 -->
  <LazyComponent v-if="condition"/>
</div>
<div v-if="condition"> <!-- 2 -->
  <LazyComponent/>
</div>
<div v-if="condition"> <!-- 3 -->
  <Component/>
</div>

v-if 应该在组件上才能延迟加载,否则它会在父级有条件时工作,如果它与父级一起工作,则组件必须以Lazy开头?

第二个问题

我正在使用vue-lazy-hydration 包来减少我的互动时间和 总阻塞时间。 When (LazyHydrate when-idle) 采取行动我不明白浏览器何时处于空闲状态。

【问题讨论】:

    标签: nuxt.js


    【解决方案1】:

    问题的第一部分

    这里a tweet关于主题,在组件本身上推荐v-if

    回顾一下您在这里遇到的所有 3 个案例:

    1. 这是迄今为止最优化的(v-if on component + Lazy)
    2. 这个不是推荐的,同时它也能正常工作(组件只有满足条件才会加载,你可以检查网络选项卡确定)
    3. 这里,组件会直接加载到页面上(JS问+解析),只是没有挂载(最坏的情况)

    所以,差不多:

    • 您可以lazy 几乎所有要导入的组件,这不是一个坏主意
    • 更喜欢直接在组件上应用v-if
    • 如果您在父标签上应用v-if,Nuxt 仍然可以以某种方式使其工作(仔细检查您的网络选项卡以确保:构建您的应用并检查在v-if 条件为时加载的JS遇见)

    问题的第二部分

    this answer 所述,当网站上没有任何事情发生(CPU 方面)时,浏览器处于空闲状态。 This answer 也可能对 IMO 有用。

    另外,我认为this idle 是完全不同不相关的东西。

    PS:上次我检查了 Markus 的项目(vue-lazy-hydration),它与 Nuxt2 不兼容。

    【讨论】:

    • 为什么几乎每个要导入的组件都懒惰是个坏主意?
    • 如果 vue-lazy-hydration 与您拥有的 nuxt 不兼容,并建议我如何减少交互时间和总阻塞时间,请帮忙
    • @nadav 实际上我在这里说的是相反的,lazy 尽可能多。只有一些东西不能被延迟加载。主要是您立即需要的那些。此外,如果您遇到与此相关的错误,您可以通过急切地加载它进行测试(没有lazy 前缀)。至于如何减少一些指标,这是一个广泛的问题,它可能来自很多方面。也许看看我的previous answer。不是直接的答案,但仍然是有效的意见。否则,您也可以尝试 Nuxt3,但要小心,因为它仍处于测试阶段。
    猜你喜欢
    • 2011-07-27
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 2019-10-19
    相关资源
    最近更新 更多