【Nuxt】404 页面 和 嵌套路由

404 页面

错误捕获页面

在应用程序源目录中添加 ~/error.vue,可以自定义默认错误页面,与 app.vue 放在一起。

error.vue

<script setup lang="ts">
const props = defineProps({
  error: Object
})

const handleError = () => clearError({ redirect: '/' })
</script>

<template>
  <div>
    <h2>{{ error.statusCode }}</h2>
    <button @click="handleError">清除错误</button>
  </div>
</template>

尽管它被称为“错误页面”,但它不是一个路由,不应该放在 ~/pages 目录中。出于同样的原因,你不应该在此页面中使用 definePageMeta。

此外,使用一个 动态路由也可以进行错误捕获,如下:

只需要一个动态参数组件的页面即可(slug 也可以是其他字符串),比如:

在这里插入图片描述

此时包含三个页面组件:/about, /about/about-fdsfsdf, /about/fdsf/fdsfs/fsdfsfsdf/…(404) 。

具体 404 路由页面可以写成某个路径下的 404,也可以直接写在 pages 下,作为根目录的 404 。

router.params 也可以获取动态参数 slug,为一个数组,比如上面的 [‘about’, ‘fdsf’, ‘fdsfs’, ‘fsdfsfsdf’, ‘…’] 。

匹配规则:

在这里插入图片描述

主动跳转错误

useError

服务端 + 客户端 (注意看当前的 nuxt的版本号是否支持)

throw useError({statusCode: 404, message: “找不到页面”})

服务端(部分) + 客户端

throw createError({statusCode: 404, message: “找不到页面”, fatal: true})

客户端 + 中间件/插件

throw showError({statusCode: 404, message: “找不到页面数据”})

嵌套路由

在这里插入图片描述

  <div class="parent-container">
    <h2>parent page</h2>
    <NuxtLink to="/parent/child1"><button>child1</button></NuxtLink>
    <!--    NuxtPage 路由占位-->
    <NuxtPage />
  </div>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秀秀_heo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值