使用 Nuxt 3 搭建国际官网

3,614 阅读5分钟

搭建国际官网是一个复杂的任务,涉及多方面的技术和策略。在这篇文章中,我们将探讨如何使用 Nuxt 3 框架搭建一个国际化官网,并展示其在 SEO 优势和全栈可维护性方面的卓越性能。

使用 Nuxt 3 搭建国际官网

1. Nuxt 3 简介

Nuxt 3 是一个基于 Vue 3 和 Vite 的框架,旨在构建现代 Web 应用。它不仅支持静态生成和服务端渲染,还具备模块化、自动化路由、数据获取等强大功能,非常适合构建复杂的国际化网站。

2. 创建 Nuxt 3 项目

首先,确保你已经安装了 Node.js 和 npm。然后,使用以下命令创建一个新的 Nuxt 3 项目:

npx nuxi init nuxt3-international
cd nuxt3-international
npm install

3. 配置国际化(i18n)

Nuxt 3 可以通过 @nuxtjs/i18n 模块轻松实现多语言支持。首先,安装该模块:

npm install @nuxtjs/i18n

然后在 nuxt.config.ts 中配置 i18n 模块:

import { defineNuxtConfig } from 'nuxt3'

export default defineNuxtConfig({
  modules: [
    '@nuxtjs/i18n'
  ],
  i18n: {
    locales: [
      { code: 'en', iso: 'en-US', name: 'English' },
      { code: 'fr', iso: 'fr-FR', name: 'Français' }
    ],
    defaultLocale: 'en',
    vueI18n: {
      fallbackLocale: 'en',
      messages: {
        en: {
          welcome: 'Welcome'
        },
        fr: {
          welcome: 'Bienvenue'
        }
      }
    }
  }
})

4. 配置 SEO

Nuxt 3 自带对 SEO 友好的特性,包括自动生成的路由、服务端渲染和静态站点生成。此外,可以使用 @nuxtjs/robots@nuxtjs/sitemap 等模块来进一步增强 SEO。

安装 SEO 模块

npm install @nuxtjs/robots @nuxtjs/sitemap

配置 SEO 模块

nuxt.config.ts 中添加以下配置:

export default defineNuxtConfig({
  modules: [
    '@nuxtjs/robots',
    '@nuxtjs/sitemap'
  ],
  robots: {
    UserAgent: '*',
    Disallow: ''
  },
  sitemap: {
    hostname: 'https://yourwebsite.com',
    routes: [
      '/',
      '/about',
      '/contact'
    ]
  }
})

5. 部署 Nuxt 3 项目

Nuxt 3 项目可以部署到多种平台上,如 Vercel、Netlify、AWS 等。以下是部署到 Vercel 的示例:

安装 Vercel CLI

npm install -g vercel

部署到 Vercel

vercel

按照提示完成部署过程,几分钟后,你的 Nuxt 3 国际化官网就可以上线了。

Nuxt 3 的 SEO 优势

1. 服务端渲染(SSR)

Nuxt 3 的服务端渲染确保了网页内容在请求时就已经渲染完成,这意味着搜索引擎爬虫能够轻松地抓取和索引你的网页内容,提高搜索引擎排名。

2. 静态站点生成(SSG)

Nuxt 3 支持静态站点生成,适合内容不频繁变化的网站。生成的静态文件可以直接部署到 CDN,提升加载速度和 SEO 性能。

3. 自动化路由

Nuxt 3 自动化路由功能简化了 URL 结构的管理,确保生成的 URL 友好且易于搜索引擎索引。

页面

Nuxt的路由基于vue-router,根据pages/目录中创建的每个组件的文件名生成路由。

文件系统路由使用命名约定来创建动态和嵌套路由:

| pages/
---| about.vue
---| index.vue
---| posts/
-----| [id].vue

目录结构生成的路由文件

{
  "routes": [
    {
      "path": "/about",
      "component": "pages/about.vue"
    },
    {
      "path": "/",
      "component": "pages/index.vue"
    },
    {
      "path": "/posts/:id",
      "component": "pages/posts/[id].vue"
    }
  ]
}

导航

<NuxtLink> 组件用于在页面之间创建链接。它会将<a>标签渲染为具有href属性设置为页面的路由。一旦应用程序被渲染,页面的切换将在JavaScript中进行,通过更新浏览器URL来实现。这样可以避免整页刷新,同时允许实现动画过渡效果。

<NuxtLink>在客户端视口中可见时,Nuxt会自动预取链接页面的组件和负载(生成的页面),从而加快导航速度。

pages/app.vue

<template>
  <header>
    <nav>
      <ul>
        <li><NuxtLink to="/about">关于</NuxtLink></li>
        <li><NuxtLink to="/posts/1">文章1</NuxtLink></li>
        <li><NuxtLink to="/posts/2">文章2</NuxtLink></li>
      </ul>
    </nav>
  </header>
</template>

路由参数

useRoute()组合式函数可在Vue组件的<script setup>块或setup()方法中使用,以访问当前路由的详细信息。

pages/posts/[id].vue

<script setup lang="ts">
const route = useRoute()

// 当访问/posts/1时,route.params.id将为1
console.log(route.params.id)
</script>

4. 动态 Meta 标签

Nuxt 3 支持动态生成每个页面的 Meta 标签,包括标题、描述和 Open Graph 标签,有助于提高页面在搜索引擎结果中的可见性和点击率。#SEO和Meta使用强大的头部配置、组合函数和组件来提升你的Nuxt应用的SEO。

useSeoMeta

useSeoMeta 组合函数允许你将站点的SEO元标签定义为一个扁平的对象,并提供完整的TypeScript支持。

这有助于避免拼写错误和常见错误,比如使用 name 而不是 property

app.vue

<script setup lang="ts">
useSeoMeta({
  title: '我的神奇网站',
  ogTitle: '我的神奇网站',
  description: '这是我的神奇网站,让我来告诉你关于它的一切。',
  ogDescription: '这是我的神奇网站,让我来告诉你关于它的一切。',
  ogImage: 'https://example.com/image.png',
  twitterCard: 'summary_large_image',
})
</script>

全栈的可维护性

1. 代码组织

Nuxt 3 采用模块化结构,代码清晰易读。所有页面、组件、插件和配置都有固定的文件夹和规则,便于团队协作和维护。

2. 数据获取

Nuxt 3 提供了多种数据获取方式,包括在页面组件中使用 useFetchuseAsyncData 等钩子函数。数据获取逻辑与页面渲染逻辑分离,提升代码可维护性。

useFetch

useFetch 组合函数是执行数据获取的最简单的方法。

app.vue

<script setup lang="ts">
const { data: count } = await useFetch('/api/count')
</script>

<template>
  页面访问量:{{ count }}
</template>

这个组合函数是 useAsyncData 组合函数和 $fetch 工具的封装。

3. 插件系统

Nuxt 3 拥有强大的插件系统,可以轻松集成第三方库和工具,如 Axios、Vuex 等,增强项目功能的同时保持代码简洁。

4. 自动化测试

Nuxt 3 支持 Jest 和 Cypress 等测试工具,方便进行单元测试和端到端测试,确保代码质量和稳定性。

5. 生产环境优化

Nuxt 3 具备开箱即用的性能优化特性,如自动代码拆分、预加载和缓存控制,确保项目在生产环境中的高性能表现。

6. 代码地址

github地址:github.com/xiongqianhu…

框架demo如下图:

截屏2024-07-02 16.32.54.png

使用 Nuxt 3 框架搭建国际官网,不仅可以充分利用其强大的 SEO 优势,还能通过模块化设计和丰富的插件系统,提升全栈应用的可维护性。通过服务端渲染和静态站点生成,Nuxt 3 确保网站的高性能和良好用户体验,是构建现代国际化网站的理想选择。