聊聊Vue2和Vue3中怎么设置404界面
本篇文章带大家进行Vue学习,聊聊Vue2和Vue3中设置404界面的方法,希望对大家有所帮助!
vue页面中,如果跳转了不存在的路由那么,那么页面就会出现白屏状态,为了解决这个问题,我们可以自己写一个404界面,让其跳转过去。
一.vue2
1.index.js
在此文件中,一般存放的都是我们的路由信息,我们经常使用path:'*'来进行捕获我们的路由,度过不存在那么我们就让它进行跳转至我们自定义的404页面。
import Vue from 'vue' import Router from 'vue-router' import Homepage from '@/components/Homepage' Vue.use(Router) export default new Router({ routes: [ { path: '/', component: Homepage, }, { path:'*', component:()=>import('../views/404.vue') } ] })
2.404.vue页面
这个页面通常我们可以自定义,一般包括跳转某个页面的超链接或者就是定时多长时间进行跳转。
<template> <div> <p> 页面将在<span>{{ time }}</span>秒后自动跳转首页,<br> 您也可以点击这里跳转<a href="/">首页</a> </p> </div> </template> <script> // 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等) export default { name: '', components: { }, // 定义属性 data() { return { time: '10', time_end: null } }, // 计算属性,会监听依赖属性值随之变化 computed: {}, // 监控data中的数据变化 watch: {}, // 方法集合 methods: { GoIndex() { let _t = 9 this.time_end = setInterval(() => { if (_t !== 0) { this.time = _t--; } else { this.$router.replace('/') clearTimeout(this.time_end) this.time_end = null } }, 1000) } }, // 生命周期 - 创建完成(可以访问当前this实例) created() { this.GoIndex() }, // 生命周期 - 挂载完成(可以访问DOM元素) mounted() { }, beforeCreate() { }, // 生命周期 - 创建之前 beforeMount() { }, // 生命周期 - 挂载之前 beforeUpdate() { }, // 生命周期 - 更新之前 updated() { }, // 生命周期 - 更新之后 beforeDestroy() { }, // 生命周期 - 销毁之前 destroyed() { clearTimeout(this.time_end) this.time_end = null }, // 生命周期 - 销毁完成 activated() { }, // 如果页面有keep-alive缓存功能,这个函数会触发 } </script> <style scoped> .not_found { width: 100%; height: 100%; background: url('../../static/img/404.gif') no-repeat; background-position: center; background-size: cover; p { position: absolute; top: 50%; left: 20%; transform: translate(-50%, 0); color: #fff; span{ color: orange; font-family: '仿宋'; font-size: 25px; } a { font-size: 30px; color: aqua; text-decoration: underline; } } } </style>
那么实现的效果就如下图所示:
404实现效果
二.vue3
为什么要分开说呢?因为在vue3中我们进行如下设置:
{ path:'*', component:()=>import('../views/404.vue') }
会产生错误,错误信息:Catch all routes ("*") must now be defined using a param with a custom regexp.,意思就是:现在必须使用与自定义Regexp的参数定义所有路由(“*”)。
那么官方是这么说的:
// plan on directly navigating to the not-found route using its name { path: '/:pathMatch(.*)*', name: 'not-found', component: NotFound }, // if you omit the last `*`, the `/` character in params will be encoded when resolving or pushing { path: '/:pathMatch(.*)', name: 'bad-not-found', component: NotFound },
那么我们vue2中的index.js文件中的代码就变成了如下:
... export default new Router({ routes: [ ..., { path:'/:pathMatch(.*)*', component:()=>import('../views/404.vue') } //或者 { path:'/:pathMatch(.*)', component:()=>import('../views/404.vue') } ] })
以上是聊聊Vue2和Vue3中怎么设置404界面的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Vue.js适合中小型项目和快速迭代,React适用于大型复杂应用。1)Vue.js易于上手,适用于团队经验不足或项目规模较小的情况。2)React的生态系统更丰富,适合有高性能需求和复杂功能需求的项目。

在 Vue.js 中使用 Bootstrap 分为五个步骤:安装 Bootstrap。在 main.js 中导入 Bootstrap。直接在模板中使用 Bootstrap 组件。可选:自定义样式。可选:使用插件。

可以通过以下步骤为 Vue 按钮添加函数:将 HTML 模板中的按钮绑定到一个方法。在 Vue 实例中定义该方法并编写函数逻辑。

Vue.js 中的 watch 选项允许开发者监听特定数据的变化。当数据发生变化时,watch 会触发一个回调函数,用于执行更新视图或其他任务。其配置选项包括 immediate,用于指定是否立即执行回调,以及 deep,用于指定是否递归监听对象或数组的更改。

Vue 多页面开发是一种使用 Vue.js 框架构建应用程序的方法,其中应用程序被划分为独立的页面:代码维护性:将应用程序拆分为多个页面可以使代码更易于管理和维护。模块化:每个页面都可以作为独立的模块,便于重用和替换。路由简单:页面之间的导航可以通过简单的路由配置来管理。SEO 优化:每个页面都有自己的 URL,这有助于搜索引擎优化。

Vue.js 遍历数组和对象有三种常见方法:v-for 指令用于遍历每个元素并渲染模板;v-bind 指令可与 v-for 一起使用,为每个元素动态设置属性值;.map 方法可将数组元素转换为新数组。

实现 Vue 中 a 标签跳转的方法包括:HTML 模板中使用 a 标签指定 href 属性。使用 Vue 路由的 router-link 组件。使用 JavaScript 的 this.$router.push() 方法。可通过 query 参数传递参数,并在 router 选项中配置路由以进行动态跳转。

Vue 中 div 元素跳转的方法有两种:使用 Vue Router,添加 router-link 组件。添加 @click 事件监听器,调用 this.$router.push() 方法跳转。
