【问题标题】:Create SPA in Nuxt.js在 Nuxt.js 中创建 SPA
【发布时间】:2020-11-23 15:59:39
【问题描述】:

我有一个导航栏(也许还有一个页脚),它应该在每个嵌套页面上都可见。所以基本上只是内容发生了变化。在 Vue.js 中,我将只使用 <router-view> 作为动态内容的占位符,并使用 <router-link> 来切换此内容。

现在在 Nuxt.js 我有以下目录结构。

pages/
--| calendar/
-----| index.vue
--| people/
-----| index.vue
--| index.vue

我的导航栏由两个<nuxt-link> 组成,例如<nuxt-link :to="/calendar"> (some content) </nuxt-link>。所以如果我点击这个链接,导航栏就会消失,只显示/pages/calendar/index.vue中的内容。 抱歉,我是 nuxt 的新手,但我认为可以像在 Vue.js 中一样创建 SPA。我什至将模式从通用更改为 spa,并且还使用了上面解释的 Vue.js 方法,但没有成功。

【问题讨论】:

  • 您需要导航到layouts,并且有一个<nuxt /> 标签。这是您的“路由器视图”。您需要将导航栏和页脚之类的东西,也许还有侧边栏放在布局中

标签: vue.js nuxt.js single-page-application


【解决方案1】:

您可以通过添加 layouts/default.vue 文件来扩展主布局。它将用于所有没有指定布局的页面。确保在创建布局时添加组件以实际包含页面组件。

类似这样的:

<template>
  <div>
    <div>My blog navigation bar here</div>
    <Nuxt />
    <div>My footer is here</div>
  </div>
</template>

如果您需要在子子路由中使用它,您可以在 pages/index.vue 中使用 NUXT-CHILD 来获取子子嵌套页面...

<template>
  <div>
    <div>FIXED BANNER</div>
      <nuxt-child />
    <div>FIXED LIST OF ITEMS </div>
  </div>
</template>

【讨论】:

  • 谢谢 ;) 这绝对是一种方法。那么与router-link相反,nuxt-link总是会加载一个新页面?
  • nuxt-link 将用于在您的应用程序中导航,类似于传统 Vue 应用程序中的 组件。事实上, 扩展了 。这意味着它具有相同的属性并且可以以相同的方式使用。请看nuxtjs.org/api/components-nuxt-link
猜你喜欢
  • 2020-06-02
  • 2020-04-21
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
  • 2019-08-17
  • 2019-12-12
  • 2019-12-31
  • 2019-12-22
相关资源
最近更新 更多