在Vue3项目中,输入没有路由对应的路径时候,怎么跳转到404或者首页

这篇具有很好参考价值的文章主要介绍了在Vue3项目中,输入没有路由对应的路径时候,怎么跳转到404或者首页。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在一个Vue3应用中,通常情况下,我们使用Vue Router来处理路由。在Vue Router中,当用户请求输入一个不正确的URL路径时,没有路由与其相匹配,这时候会返回一个默认的404页面或者重定向到首页。因此,本文将通过以下几个方面来讨论如何在Vue3项目中实现这一功能。

1. 异步组件

在Vue3中,我们可以使用异步组件来延迟加载路由组件,并在组件加载完成前显示一个加载指示器。异步组件可以通过函数返回一个promise来实现,该promise在组件加载成功后resolve。

const Example = () => import('./Example.vue')

对于异步组件,当路由不能匹配时,Vue Router可以自动加载404组件。这要求您在路由表中明确定义404路由,并将其放在最后。这是一个示例:

const routes = [ { path: '/home', component: Home }, { path: '/example', component: Example }, { path: '/404', component: NotFound }, { path: '*', redirect: '/404' } ]

在这个示例中,我们向路由表中添加了一个NotFound组件,当路径不匹配时就会被加载。

2. 全局前置守卫

Vue Router还提供了另一种处理404的方法——全局前置守卫。这种方法涉及使用beforeEach钩子函数,在导航到任何路由之前进行检查。如果没有匹配的路由,则可以将用户重定向到404页面。

router.beforeEach((to, from, next) => { if (to.matched.length === 0) { next('/404') } else { next() } })

在上面的代码中,我们检测了即将要跳转到的路由对象是否拥有matched属性,如果有,那么继续跳转,否则就重定向到/404路由。

3. HTML5 history模式

Vue Router还支持HTML5 history模式,在这种模式下,我们可以将URL路径看起来像接近传统网站中的路径,而不是像一个前端路由。例如,我们可以让'www.xxx.com/about'与'/about'匹配。

在HTML5 history模式下使用时,客户端发送的任何请求都将被发送到服务器,而服务器将始终返回同一HTML文件。因此,在后端设置路由规则是必要的。

为在vue-router中启用history模式,需要使用vue-router选项中的mode属性:

const router = new VueRouter({ mode: 'history', routes: [...] })

在使用HTML5 history模式时,如果用户访问的URL不存在,则可以将用户重定向到默认首页或自定义404页面。

4. 计算属性

在Vue3中,我们还可以使用计算属性来实现处理404的逻辑。我们可以根据路由对象中matched属性的长度来检测是否有匹配的路由。如果没有,我们可以使用$route.path将用户重定向到自定义404页面。

<template> <div v-if="isNotFound"> <h1>404 Not Found</h1> </div> </template> <script> export default { computed: { isNotFound() { return this.$route.matched.length === 0 } }, watch: { isNotFound(val) { if (val) { this.$router.push('/404') } } } } </script>

在上面的示例中,我们使用一个计算属性isNotFound和一个watcher来监视isNotFound的变化。当isNotFound变为true时,我们将路由推送到/404。

结论

在Vue3中,处理404页面的方法有很多。我们可以使用异步组件、全局前置守卫、HTML5 history模式以及计算属性等技术来实现这一功能。这些方法可以根据我们的需求和项目的规模进行选择。无论使用哪种技术,我们都应该遵循最佳实践并保持代码清晰易读,并且对用户友好。文章来源地址https://www.toymoban.com/news/detail-430033.html

到了这里,关于在Vue3项目中,输入没有路由对应的路径时候,怎么跳转到404或者首页的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用keil的时候没有安装对应MCU的库,以STM32F103F为例

    安装keil的时候没有用到这个芯片就没有安装对应的库。重新安装之后遇到的几个坑: 打开keil显示没有这个型号,解决方法是安装对应的库。STM32F103F要安装Keil.STM32F1xx_DFP.2.4.1.pack。 安装完库之后,点击Option for target,查看一下Device里面有没有对应型号的MCU可以选择。 确认安装

    2024年02月10日
    浏览(41)
  • 使用vscode在vue项目中重命名文件选择了更新导入路径仍有部分导入路径没有更新

    背景: 将一个js文件重命名,vscode弹出是否更新导入路径,选择更新导入后,发现js文件中导入路径都自动更新,vue文件中路径都没有更新。 解决方案: 在设置中搜索updateimport,将最下面的VueUpdate Imports On File Move: Enable 将其勾选,就可以实现vue文件的重命名更新导入。经过实

    2024年02月12日
    浏览(39)
  • Vue3项目中没有配置 TypeScript 支持,使用 TypeScript 语法

    1.安装 TypeScript:首先,需要在项目中安装 TypeScript。在终端中运行以下命令 2.创建 TypeScript 文件:在 Vue 3 项目中,可以创建一个以 .ts 后缀的文件,例如 MyComponent.ts。在这个文件中,可以使用 TypeScript 语法编写代码。 在上面的示例中,我们使用 defineComponent 函数来定义一个

    2024年02月15日
    浏览(26)
  • Vue3添加动态路由及项目搭建

    安装依赖包 在tsconfig.json中配置别名 在vite中进行配置 下载依赖包 完整引入 在项目入口文件main.js 按需导入 首先安装依赖包 在项目入口文件main.js 安装依赖 路由表搭建 main.js中配置 axios二次封装 请求的类型限制为:InternalAxiosRequestConfig 响应的类型限制为:AxiosResponse 添加路由

    2024年02月05日
    浏览(33)
  • Vue3项目-配置路由及侧边栏导航栏

    1.在views 文件夹中创建文件夹 并在其中一个文件夹中创建一个vue文件  因为 没有配置TS 因此script 后面没有跟lang=\\\"ts\\\"  例如 下图所示      2.在router文件夹下面index文件中  routes数组添加重定向  其中某对象中添加 children 属性 配置 二级路由 并关联上想要链接的页面  compon

    2024年02月09日
    浏览(34)
  • 在vite+vue3项目中配置使用css预处理器(less/sass)以及路径别名

    vite已经将这些预处理器的loader内置了,我们不用再像在webpack项目中那样,需要下载和配置一堆相关的loader,我们只需要下载less,sass依赖,就能直接在项目中使用啦 使用npm或者yarn来安装以下依赖: Less预处理器: npm install -D less Sass预处理器: npm install -D sass 如图,下载之后

    2024年02月11日
    浏览(81)
  • 在vite创建的vue3项目中使用Cesium加载czml路径信息和无人机模型

    用到的区域文件、地图标记文件、路径信息文件、模型文件 提取码:99jq 使用vite创建vue3项目 cd到创建的项目文件夹中 安装Cesium 配置 vite.config.js文件:添加Cesium并设置反向代理实现跨域。 style.css(可选):修改#app样式 代码 App.vue 解读 加载token 创建查看器viewer,加载世界街道地

    2024年02月16日
    浏览(32)
  • vue3.2项目中使用history路由模式刷新后页面404

    开发过程中,路由可以正常访问,打包后也可以正常访问,但是一刷新页面就会出现404错误 方法一:修改为Hash路由模式 在router/index.ts文件中,将history路由模式修改为hash路由模式即可。 history路由模式: hash路由模式: 方法二、修改后台伪静态 Nginx: Apache: 可以参考下这篇文

    2024年02月11日
    浏览(40)
  • vue3项目服务器静态文件部署增加指定路由地址完整实现

    在 Vue 3 项目中,如果你想要配置服务器以便让它在特定的地址上运行,你通常是在使用 Vue CLI 的 devServer 配置。这主要是通过修改 vue.config.js 文件实现的。 如果你希望开发服务器绑定到特定地址,比如 192.168.1.100 ,可以这样做: 在项目根目录下创建或修改 vue.config.js : 如果你

    2024年02月07日
    浏览(34)
  • 基于vscode开发vue3项目的详细步骤教程 3 前端路由vue-router

    1、Vue下载安装步骤的详细教程(亲测有效) 1_水w的博客-CSDN博客 2、Vue下载安装步骤的详细教程(亲测有效) 2 安装与创建默认项目_水w的博客-CSDN博客 3、基于vscode开发vue项目的详细步骤教程_水w的博客-CSDN博客 4、基于vscode开发vue项目的详细步骤教程 2 第三方图标库FontAwesome_水w的

    2024年02月02日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包