title: 使用 prerenderRoutes 进行预渲染路由

date: 2024/8/20

updated: 2024/8/20

author: cmdragon

excerpt:

prerenderRoutes 函数是 Nuxt 3 中一个强大的工具,它能够帮助开发者优化页面加载速度和改善用户体验。通过使用 prerenderRoutes,你能够灵活地指定需要预渲染的路由,提升网站性能和 SEO 效果。

categories:

  • 前端开发

tags:

  • 前端
  • Nitro
  • 预渲染
  • SEO
  • 路由
  • 优化
  • 教程



扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长

在现代前端开发中,预渲染是提升网站性能和用户体验的一项重要技术。Nitro 的 prerenderRoutes 函数允许开发者指定额外需要预渲染的路由,尽管这些路由不一定会在生成的 HTML 中显示。

什么是预渲染?

预渲染是指在构建阶段生成静态 HTML 文件的过程,以便在用户请求时直接提供这些文件。这种方法可以显著提高页面加载速度,并且对于 SEO(搜索引擎优化)也有很大的帮助。

prerenderRoutes 的基本用法

prerenderRoutes 函数允许你告诉 Nitro 需要预渲染哪些路由,即使这些路由的 HTML 不会直接显示在最终的网页中。

基本语法

以下是 prerenderRoutes 的基本用法:


// 单个路由
prerenderRoutes('/'); // 多个路由
prerenderRoutes(['/', '/about']);

在终端窗口中,你可能会看到关于路由预渲染的日志信息。此时,/about 页面应该在你访问主页时已经被预渲染。

何时使用 prerenderRoutes

使用 prerenderRoutes 的场景主要包括:

  • 你有某些静态页面需要被预渲染。
  • 你想提升特定路由的SEO性能。

请注意,prerenderRoutes 只能在服务器端执行,若在浏览器中或其他非预渲染的环境中调用,将不会生效。

示例项目

我们将创建一个简单的项目,通过 prerenderRoutes 预渲染一些页面。

步骤 1:安装所需依赖

确保你的项目中已安装 Nitro。可以通过以下命令安装:

npm install nitro

步骤 2:项目结构

创建一个简单的项目结构:

my-nitro-project/
├── src/
│ ├── pages/
│ │ ├── index.vue
│ │ └── about.vue
│ └── server/
│ └── prerender.js
└── package.json

步骤 3:创建页面

src/pages/index.vue 中添加以下代码:

<template>
<div>
<h1>首页</h1>
<p>欢迎来到我的网站!</p>
</div>
</template>

src/pages/about.vue 中添加以下代码:

<template>
<div>
<h1>关于我们</h1>
<p>这是关于我们的页面。</p>
</div>
</template>

步骤 4:使用 prerenderRoutes

src/server/prerender.js 文件中,添加以下代码:

import { defineEventHandler } from 'nitro'

export default defineEventHandler((event) => {
// 预渲染首页和关于页面
prerenderRoutes(['/', '/about']);
});

步骤 5:构建项目

在项目根目录下,使用以下命令构建项目:

nitro build

步骤 6:启动项目

构建完成后,使用如下命令启动项目:

nitro start

当项目启动后,你将能够访问 //about 路由,这些页面将会被预渲染。

结论

prerenderRoutes 函数是 Nuxt 3 中一个强大的工具,它能够帮助开发者优化页面加载速度和改善用户体验。通过使用 prerenderRoutes,你能够灵活地指定需要预渲染的路由,提升网站性能和 SEO 效果。

余下文章内容请点击跳转至 个人博客页面 或者 扫码关注或者微信搜一搜:编程智域 前端至全栈交流与成长,阅读完整的文章:使用 prerenderRoutes 进行预渲染路由 | cmdragon's Blog

往期文章归档:

使用 prerenderRoutes 进行预渲染路由的更多相关文章

  1. Vue-Cli3.0 单页面如何预渲染,解决登录拦截导致无法部分路由无法预渲染问题?

    vue单页面不利于seo,如何解决已有spa项目seo问题? 1.安装 cnpm install prerender-spa-plugin --save-dev 2.路由history模式 const ...

  2. 服务端预渲染之Nuxt (使用篇)

    服务端预渲染之Nuxt - 使用 现在大多数开发都是基于Vue或者React开发的,能够达到快速开发的效果,也有一些不足的地方,Nuxt能够在服务端做出渲染,然后让搜索引擎在爬取数据的时候能够读到当前 ...

  3. 服务端预渲染之Nuxt(介绍篇)

    现在前端开发一般都是前后端分离,mvvm和mvc的开发框架,如Angular.React和Vue等,虽然写框架能够使我们快速的完成开发,但是由于前后台分离,给项目SEO带来很大的不便,搜索引擎在检索的 ...

  4. vue 预渲染遇到的坑

    前言: 最近公司项目需要增加seo搜索引擎优化,到网上找了下资料,有预渲染和服务端渲染两种方式,考虑到只需要渲染首页所以我选择了先启用比较简单的预渲染方式来做seo! 步骤: 1.安装 prerend ...

  5. vue(初探预渲染)

    ---恢复内容开始--- 一.前言 1.简介预渲染                     2.案例演示(不配置预渲染)                     3.配置预渲染, 二.主要内容 1.简 ...

  6. Vue项目预渲染机制引入实践

    周末想顺便把已经做好静态页面的webApp项目做一下SEO优化,由于不想写蹩脚的SSR代码,所以准备采用预渲染,本来想着网上有这么多预渲染的文章,随便找个来跟着做不就完了嘛,结果年轻的我付出了整个周末 ...

  7. vue-cil 服务端预渲染 prerender-spa-plugin

    众所周知单页面应用不利于SEO,为了解决这个问题网上所给出的2个解决方案1.SSH服务器端渲染2.预渲染由于页面较少,且预渲染相对于SSH比较简单,于是选择预渲染页面,预渲染可以极大的提高网页访问速度 ...

  8. vue预渲染实践总结

    # 预渲染 ## 预渲染简介 SEO和首屏加载速度慢的问题,社区讨论最多的解决方案是同构 SSR,即首屏使用服务端渲染,之后的交互逻辑交给客户端处理,解决了单页应用带来的两个问题,但是也带来了服务器压 ...

  9. 什么是服务端渲染、客户端渲染、SPA、预渲染,看完这一篇就够了

    服务端渲染(SSR) 简述:     又称为后端渲染,服务器端在返回html之前,在html特定的区域特定的符号里用数据填充,再给客户端,客户端只负责解析HTML.     鼠标右击点击查看源码时,页 ...

  10. vuejs 预渲染插件 prerender-spa-plugin 生成多页面 -- SEO

    前端vue等框架打包的项目一般为SPA应用,而单页面是不利于SEO的,现在的解决方案有两种: 1.SSR服务器渲染   了解服务器渲染请进,这里不做记录. 2.预渲染模式   这比服务端渲染要简单很多 ...

随机推荐

  1. ecnuoj 5042 龟速飞行棋

    5042. 龟速飞行棋 题目链接:5042. 龟速飞行棋 赛中没过,赛后补题时由于题解有些抽象,自己写个题解. 可以发现每次转移的结果只跟后面两个点的胜负状态有关. 不妨设 \(f_{u,a,b}\) ...

  2. Kubernetes(八)安全认证

    安全认证 本章主要介绍Kubernetes的安全认证机制. 1. 访问控制概述 Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务.所谓的安全性其实就是保证对Kube ...

  3. .NET Core WebAPI项目部署iis后Swagger 404问题解决

    .NET Core WebAPI项目部署iis后Swagger 404问题解决 前言 之前做了一个WebAPI的项目,我在文章中写到的是Docker方式部署,然后考虑到很多初学者用的是iis,下面讲解 ...

  4. 在 VSCode 中编写 Markdown 的进阶指南

    最新版的 Visual Studio Code 对 Markdown 的支持已显著提升,其在预览方面的体验甚至可以与 Markdown Preview Enhanced 插件相比.本文将介绍一些优化方 ...

  5. OpenCV程序练习(二):图像处理基础

    一.彩色图像像素处理 代码 import cv2 import numpy as np #----------蓝色通道---------- blue=np.zeros((300,300,3),dtyp ...

  6. Spring Boot 整合

    什么是Spring Boot? 百度百科一下 创建Spring Boot项目 通过官网来创建(了解) 这里面的创建方式不做过多说明,只需要在 官网 里面创建好了,然后下载解压,就可以了,我这里直接使用 ...

  7. 10分钟快速掌握分布式版本控制系统GIT命令集【形成知识体系篇】

    任务要求 要求全部使用git命令实现 1.创建本地仓库,项目名称为hniu_site 2.在仓库下创建多级(目录)文件夹cn/hniu/班级名称(例如软件2108,cn/hniu/rj2108) 3. ...

  8. Python 潮流周刊第 2 季完结了,分享几项总结

    我订阅了很多的周刊/Newsletter,但是发现它们都有一个共同的毛病:就是缺乏对往期内容的整理,它们很少会对内容数据作统计分析,更没有将内容整理成合集的习惯. 在自己开始连载周刊后,我就想别开生面 ...

  9. log4cpp的安装及使用

    目录 前言 安装 使用 示例代码 配置文件 编译链接 输出 前言 本文的操作均在ubuntu20.04下进行 安装 本文仅介绍从源码编译安装log4cpp的过程. ①在开始编译前,首先要确保系统中安装 ...

  10. [oeasy]python024_vim读取文件_从头复制到尾_撤销_重做_reg_寄存器

    Guido的简历 回忆上次内容 python 是Guido制作的语言 从Guido刚入职场 就开始的项目 python这个项目 一直跟随Guido   Guido 曾经在 cwi cnri beope ...