NuxtJs 为动态网站生成?

Ahm*_*aki 6 vue.js vuejs2 nuxt.js

我正在使用 NuxtJs 创建一个简单的演示应用程序。主页显示不经常更改的静态内容。还有另一种显示用户列表的方法:/users. 还有一个用于显示用户的详细信息:/user/id.

现在我的问题是nuxt generate和之间有什么区别nuxt build?我应该使用哪一种?

我认为nuxt generate页面不会呈现动态路由,例如usersuser/id,我说得对吗?如果我是对的,那么generate命令将只为主页生成一个预渲染的 HTML。所以使用generate总是比使用更好build吗?

Fra*_*nci 5

universal模式中,nuxt generate用于静态站点生成。nuxt build用于SSR站点。

在 2.13.0 中,Nuxt引入了一个target: static功能,请务必检查

静态站点的性能最好,并且很容易部署在 nginx 或其他服务上,例如Netlify.

默认情况下,nuxt generate只渲染你的静态主页和/users页面,而不是动态/user/:id路由。

但是您可以配置nuxt 来帮助您生成动态路由。

  1. 如果你有一组固定的用户,你可以使用函数来生成路由

  2. 如果用户数据不断变化,您可以配置nuxt 在动态路由上回退到 SPA。但是您无法在动态路线上为 SEO 带来任何好处。

对于 SPA 回退,在generate config 中,为 SPA 回退定义一个自定义页面:

export default {
  generate: {
    fallback: "custom_sap_fallbackpage.html"
  }
}
Run Code Online (Sandbox Code Playgroud)

为部署中的未知路由配置回退页面,例如,在 Nginx 中:

location / {
    try_files $uri /custom_sap_fallbackpage.html;
}
Run Code Online (Sandbox Code Playgroud)

nuxt build将为您建立一个 SSR 站点。html 在服务器上呈现并发送到客户端。它在服务器上增加了一些工作负载,可能不是那么容易部署,但主要的收益是 SEO。对于一些使用低端设备或互联网连接速度较慢的用户来说,也许您的网站在 SPA 模式下的性能会更好。

基本上,您需要考虑:

  1. 网站的内容是静态的还是不断变化的?

nuxt generate为静态。nuxt generatenuxt buildspa模式用于具有动态路由的站点。

  1. 你需要SEO吗?

SPA 不会获得任何 SEO。

  1. 你如何部署网站?

对于静态托管服务,只有nuxt generateorspa模式有效。

  1. 您的网站包含大量 js 代码,并且您希望为网速较慢和设备较慢的用户提供最佳性能。或者 SEO 对您的网站很重要,因为它有很多动态内容。

SSR 适合你,使用nuxt build.