如何在 NuxtJS 中只渲染一次组件?

Posted

技术标签:

【中文标题】如何在 NuxtJS 中只渲染一次组件?【英文标题】:How to render components only once in NuxtJS? 【发布时间】:2020-11-25 04:56:38 【问题描述】:

在使用 SPA mod 的 Nuxt 框架中, 我有一个默认布局:

<template>
  <div id="wrapper">
    <my-header />
    <nuxt />
    <my-footer />
  </div>
</template>

在上面的示例中,&lt;my-header&gt;&lt;my-footer&gt; 是我创建的组件。

我希望它们只初始化和渲染一次。 更改路由器后,它们将不再渲染。

【问题讨论】:

您的页脚和页眉不会重新呈现。如果您更改布局,它们只会重新渲染 【参考方案1】:

例如,假设您提供的代码位于 layouts > default.vue 中,并且您没有更改 .nuxt 文件夹中的默认设置,它只会呈现一次。

只有&lt;nuxt /&gt; 中的内容会发生变化——这将是您应用程序的一般内容。基本上它将显示页面组件(仅用于布局 - ref)。

所以在这种情况下,只要不刷新页面,页眉和页脚就不会重新呈现。在页面之间移动时,您可能希望使用 nuxt-link (ref) 而不是强制重新加载(保留默认设置)。

nuxt-link 用法示例:

<nuxt-link to="/about">About page</nuxt-link>

关于页面将位于:

pages > about > index.vue

【讨论】:

感谢您的信息,但我希望它不会重新呈现为页面之间的变化:( 如果您使用nuxt-link 在页面之间切换,则在这种情况下(如上所述)页眉和页脚不会重新呈现。 也许你重新加载你的页面!例如,通过使用 也许你误会了我。我正在使用 nuxt 路由器。例如,我在 my-header 中的 created() 钩子中使用 console.log('go here'),当路由器推送在页面之间切换时,我不希望该组件被重新渲染(不运行代码创建()) @AlberZ 你是如何在页面之间切换的,你能举个例子吗?默认情况下,布局将只运行一次,第一次应用程序初始化时,如果页眉和页脚放置在那里,这意味着它将只安装和创建一次。问题在于您在前面提到的页面之间切换的方式。

以上是关于如何在 NuxtJS 中只渲染一次组件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React hooks 和 redux 中只获取一次且不再获取数据

如何使用 Vue 类组件在 NuxtJs 项目中注册附加 Hook

如何在组件中从 nuxtjs 的 auth 模块加载数据

如何在组件方法中的 nuxtjs 中进行重定向而不是获取方法?

Vue.js/NuxtJS - 如何创建具有可通过 JSON 配置文件自定义的默认设计的组件

如何使用 React HashRouter 和 Apollo 客户端渲染反应类组件?