Vue2和Vue3中如何设置404界面
这篇文章主要讲解了“Vue2和Vue3中如何设置404界面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue2和Vue3中如何设置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')
}
]
})
注意:这个path一定要写在最外面。
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>
二.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界面”的内容了,经过本文的学习后,相信大家对Vue2和Vue3中如何设置404界面这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是蜗牛博客,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
评论