前言

今日给自己项目添加404页面时,踩了一点坑,分享给大家。

正文

    <div class="_404"><h2 class="m-0">抱歉,页面未找到,<span>{{countDown}}</span>s后自动跳转到<a href="javascript:;" @click="goHome">首页</a></h2><img src="../assets/404.jpg" alt="页面未找到"></div><style>body {background-color: #dceebc;}._404 {width: 30%;margin: 5rem auto;}._404 img {width: 30rem;}._404 a {color: #010101;}._404 a:hover {color: skyblue;}
</style>

页面结构很简单,一点提示信息和一张顺眼的图片即可。

<script>export default {name: "NF404",data() {return {countDown: 5}},methods: {goHome() {this.$router.push('/main/home')}},created() {setInterval(() => {this.countDown > 0 ? this.countDown-- : this.$router.push('/main/home')}, 1000)}}
</script>

脚本这里,逻辑为倒计时后自动跳转至首页,或者主动点击链接也可以跳转。

  • 结果发现,第一次进入404页面,是很成功的,但是再次进入的话,就会直接跳转至主页,没有倒计时。
  • 第一时间我是觉得是因为vue组件从缓存里加载的问题,所以created函数只在第一次触发。于是在created函数中加入了alert(),发现每次进入404页面,确实是重新创建了。也就是说,vue router变换时,默认是会销毁离开的组件的。
  • 那么我又想到可能是setInterval()的问题,可能是没有及时清除的原因,将代码修改之后,成功运行。
<script>export default {name: "NF404",data() {return {countDown: 5,timer: null}},methods: {goHome() {this.$router.push('/main/home')clearInterval(this.timer)}},created() {this.timer = setInterval(() => {this.countDown > 0 ? this.countDown-- : this.goHome()}, 1000)}}
</script>
22/05/10更新

在vue2中,捕获404路径的写法是:

{path: "*",name: "NotFound",component: () => import("@/views/common/not-found/NotFound.vue"),
}

而在vue3中,vue-router禁用了这种写法,改为:

{path: "/:pathMatch(.*)",name: "NotFound",component: () => import("@/views/common/not-found/NotFound.vue"),
}

结语

在vue组件中使用计时器的时候,一定要记得及时清除!
如果对你有帮助的话,请点一个赞吧

vue 中编写404页面相关推荐

  1. Vue中编写老师页面

    1.我们登录老师页面,但是会出现无权访问的情况,是因为我们要判断是老师还是学生登录老师页面. watch:{login(val){if(val){this.loadDetails();}}},meth ...

  2. Document.visibilityState 页面监听 vue中实现离开页面时计时停止: 停止计时后从上一次开始计时

    概述 Document.visibilityState (只读属性), 返回document的可见性, 即当前可见元素的上下文环境. 由此可以知道当前文档(即为页面)是在背后, 或是不可见的隐藏的标签 ...

  3. Vue中监听页面刷新和关闭beforeunload事件

    代码 在methods中定义事件方法,在mounted 生命周期钩子中绑定事件, 在destoryed钩子中卸载事件 mounted () {window.addEventListener('befo ...

  4. idea中浏览器打开页面404_深圳网站建设中的404页面有什么用

    通常我们访问网站时,遇到404页面会让人很扫兴,想想正在兴致勃勃的看新闻.找资料.看视频等等,突然出现一个巨大的404,告诉你找的东西不存在,是不是有种想砸键盘的冲动? 可偏偏有很多404页面让你看到 ...

  5. Vue 中定义方法页面上使用

    vue中定义方法的格式 为什么要这样定义 最近在学习前段,特别是HBuildX 我看里面很多方式都是这样使用,所以想强加练习 如何引用 当然我们的editArticle也可以直接放到js中,如下: 都 ...

  6. Vue中设置404错误页面【钢镚核恒】

    Vue错误页面 简介 错误页面:为了让用户在访问不到的情况下,有更好的体验和反馈 这里提供了使用步骤,上路! 有404.401组件模板,大家可以修改使用,或者自己动手造个更好的咯 上路 创建错误页面组 ...

  7. vue 中嵌入iframe页面

    使用的是vue-element-admin. 需求 项目需求是在点击左边侧边栏的时候判断如果是外部的页面之后,将此页面在右侧打开,每打开一个,tagview中也会相应加上,当切换这些tagview时, ...

  8. vue中监听页面,禁止点击浏览器返回按钮返回

    问题 某个页面限制用户点击浏览器返回按钮返回 解决方法 在该页面的vue实例中添加mounted destroyed钩子,并且添加goBack方法加以限制 mounted () {if (window ...

  9. Vue中动态设置页面title

    前言 更多内容,请访问我的 个人博客. 安装依赖 npm install vue-wechat-title --save 复制代码 在mian.js中引入 //设置title import VueWe ...

最新文章

  1. 第5章 图像分类的数据集
  2. percona server修改数据目录datadir为/data/mysql:
  3. Python入门100题 | 第021题
  4. 解决sqlserver1433端口占用问题
  5. ajax jsonp img
  6. 类增量学习(Class-Incremental Learning)领域部分经典论文汇总
  7. lxc设置网络为公网IP
  8. Postman自动化接口测试实战详解
  9. spring和spring_Spring MVCGradle
  10. 单片机入门到高级开挂学习路径(附教程+工具)
  11. linux卸载软件wine,Ubuntu 卸载wine
  12. html5网页中的表格教程,javascript程序设计_达内javascript教程-达内web前端培训
  13. 迷宫花坛(garden)
  14. 性能优化的 10 个技巧
  15. 12款免费图标生成器
  16. Redis到底是什么?
  17. vue未登录跳转至登录页面
  18. Array.slice 的常用用法
  19. 【GA TSP】基于matlab遗传算法求解旅行商问题【含Matlab源码 1337期】
  20. 一文带你搞懂Nginx,老王出品,必属精品

热门文章

  1. Kubernetes--k8s---进阶--AWS托管式容器服务EKS--EKS全面介绍和安装使用
  2. 独立站的7大运营手法
  3. 实用的php封装函数
  4. Android 12系统源码_系统壁纸(一)系统壁纸的原理分析
  5. kettle的下载安装以及问题点
  6. 大数据在互联网时代的意义!
  7. 关于 CentOS 迁移龙蜥操作系统,这里有一份详细指南,请查收~
  8. 互联网人才泡沫:百度腾讯阿里大打人才争夺战
  9. python-opencv实现图像超像素分割(SLIC、SEEDS、LSC)
  10. mysql 中查看表结构的命令