首页 > 其他分享 >使用 prerenderRoutes 进行预渲染路由

使用 prerenderRoutes 进行预渲染路由

时间:2024-08-20 11:49:53浏览次数:7  
标签:cmdragon 渲染 Blog prerenderRoutes 使用 路由


title: 使用 prerenderRoutes 进行预渲染路由
date: 2024/8/20
updated: 2024/8/20
author: cmdragon

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

categories:

  • 前端开发

tags:

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

image
image

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

在现代前端开发中,预渲染是提升网站性能和用户体验的一项重要技术。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

往期文章归档:

标签:cmdragon,渲染,Blog,prerenderRoutes,使用,路由
From: https://www.cnblogs.com/Amd794/p/18369184

相关文章

  • Vue 3 组件渲染“暂停”技巧
    目录为什么需要“暂停”渲染?实现思路示例实现1.创建组件2.解释实现优化建议更深入的渲染控制1.异步组件2.使用Suspense3.废弃管理性能优化技巧1.虚拟滚动2.使用watchEffect3.事件处理实际应用场景        在使用Vue3开发复杂应用时,有时我们......
  • 033、Vue3+TypeScript基础,路由传参时候把层级脱掉
    01、Datail.vue代码如下:<template><ulclass="news-list"><li>编号:{{route.query.id}}</li><li>编号:{{route.query.title}}</li><li>编号:{{route.query.content}}</li></ul></tem......
  • TCPIP路由技术第一卷第八章OSPF 第六部分-1虚链路
    tcp/ip_ospf案例研究6虚链路/认证/ABRfiltering1.area1virtual-link33.1.1.1(rid)2.gretunnel(ip封装ip的技术)inttunnel0ipadd113.1.1.1255.255.255.0ipospf110area0tunnelsourcelo0tunneldestination33.1.1.13.认证有很多种组合,值需要记住本资粮链......
  • TCPIP路由技术第一卷第八章OSPF 第五部分-2 Forward address
    tcp/ip_ospf案例研究5forwardaddressforwardaddress:intheautonomoussystem'sinteriortofunctionas"routeserver"initsas-external-lsas,packetsshouldberouteddirectly通告0.0.0.0非0的情况nssa区域:转发地址为asbr上最大的环回口非nssa:直接为下一跳地......
  • TCPIP路由技术第一卷第八章OSPF 第五部分-1 特殊区域
    tcp/ip_ospf案例研究4特殊区域1.stub区域:区域内所有设备areaidstub:abr会通告一条oia(默认cost1)的默认路由,存在3类lsa不存在4,5类lsa2.totallystub区域:abr配置no-summary,其他设备配置areaidstub;abr会通告一条oia的默认路由;不存在3,4,5类lsa3.nssa区域:区域内所有......
  • TCPIP路由技术第一卷 第三大部分-2 重分步的定义及实验
    tcp/ip路由控制案例研究1单向重分布和双向重分布1.什么是充分:从一个协议(或者进程域)学习到的路由(以及运行该协议的直连接口)重分布到另一个协议的数据库中2.度量值,重分布时需要制定度量值让多种协议可以理解原来的度量值(seedmetric)3.ad(管理距离),从多个协议学习到同一......
  • TCPIP路由技术第一卷第八章OSPF 第六部分-2认证和LSA过滤
    ospf认证明文认证:链路,区域,虚链路密文认证(md5):链路,区域,虚链路ospf链路明文认证step1:在接口下设置认证密钥r1(config-if)#ipospfauthentication-keyccnpr2(config-if)#ipospfauthentication-keyccnpstep2:在接口下开启明文认证r1(config-if)#ipospfauthenti......
  • TCPIP路由技术第一卷 第三大部分-4 路由更新Distribute-list
    外部的路由可以进入到路由表中,路由表中的路由也可以被通告出去,那么路由过滤器正是通过管制这些出入路由表的路由来工作的.distributelisteigrpoutin方向完全满足ospfout方向不行r1:routerripnoautoversion2network12.0.0.0r2:routerripnoautoversion2ne......
  • TCPIP路由技术第一卷 第三大部分-3 同一协议的重分步以及ODR
    odr160r1:routereigrp1network12.1.1.10.0.0.0r2:routereigrp1noautonetwork12.1.1.20.0.0.0network22.1.1.10.0.0.0r1:routereigrp1redistributeeigrp90routereigrp90redistrbuteeigrp1r2:routerospf1network12.1.1.20.0.0.0area0......
  • TCPIP路由技术第一卷 第三大部分-6-route-map
    tcp/ip路由控制案例研究3多点重分布和ad值,route-map1.r1,r4正常双向重分布2.r1重分步ospf时拒绝某路由route-mapdenydeny10matchipadd1route-mapdenypermit203.r1上为某些路由做tacroute-maptacpermit10matchipaddress10settag44r2上会受到含tag44的......