这篇文章主要讲解了“Vue2和vue3中如何设置404界面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue2和Vue3中如何设置404界面”吧!一.vue21.index.js在此文件中
这篇文章主要讲解了“Vue2和vue3中如何设置404界面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue2和Vue3中如何设置404界面”吧!
在此文件中,一般存放的都是我们的路由信息,我们经常使用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一定要写在最外面。
这个页面通常我们可以自定义,一般包括跳转某个页面的超链接或者就是定时多长时间进行跳转。
<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中我们进行如下设置:
{ 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界面这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!
--结束END--
本文标题: Vue2和Vue3中如何设置404界面
本文链接: https://lsjlt.com/news/349290.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0