vue.js vue-router如何实现无效路由(404)的友好提示


Posted in Javascript onDecember 20, 2017

前言

大家都知道对于单页应用,官方提供了vue-router进行路由跳转的处理,而最近在做一个基于vue-router的SPA,想对无效路由(404)页面做下统一处理。

这次我真的没有在官方文档找到具体的说明[捂脸]

所以本文仅是我DIY的一个思路,求轻虐=_=

在我的理解中,vue-router是根据path去匹配注册的route,匹配到则加载对应的组件,匹配不到则重置(或者说清空)对应的router-view。

所以,我们不做处理的话,最终页面展示的是一片空白。

那么,我们是不是可以在路由匹配上做文章呢?

路由监测

在组件中,可以从this.$route获取当前路由,那么就可以使用watch监测路由的变化,监测所有路由变化自然而然的落在根路由组件(如:App.vue)上面了。

无效路由检测

$route.matched包含了当前路由的匹配结果,如果为空则说明当前路由无效。

界面提示

可使用条件渲染,路由有效则渲染router-view,路由无效则渲染提示信息。

Demo

App.vue

<template>
 <p v-if="invalidRoute">404</p>
 <router-view v-else></router-view>
</template>
<script type="text/babel">
 export default {
 name: 'App',
 computed: {
  invalidRoute () {
  return !this.$route.matched || this.$route.matched.length === 0;
  }
 }
 };
</script>

至于404要多友好就看自己了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
Ajax::prototype 源码解读
Jan 22 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
Jan 09 Javascript
判断某个字符在一个字符串中是否存在的js代码
Feb 28 Javascript
jquery解析json格式数据的方法(对象、字符串)
Nov 24 Javascript
微信小程序 rpx 尺寸单位详细介绍
Oct 13 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
May 03 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
Oct 27 Javascript
JavaScript实现三级级联特效
Nov 05 Javascript
vue-lazyload使用总结(推荐)
Nov 01 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
Nov 30 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
Mar 04 Javascript
微信小程序点餐系统开发常见问题汇总
Aug 06 Javascript
详解vue mixins和extends的巧妙用法
Dec 20 #Javascript
canvas轨迹回放功能实现
Dec 20 #Javascript
jQuery实现动态控制页面元素的方法分析
Dec 20 #jQuery
js实现以最简单的方式将数组元素添加到对象中的方法
Dec 20 #Javascript
浅谈gulp创建完整的项目流程
Dec 20 #Javascript
vue使用axios实现文件上传进度的实时更新详解
Dec 20 #Javascript
JavaScript通过mouseover()实现图片变大效果的示例
Dec 20 #Javascript
You might like
非常好用的Zend Framework分页类
2014/06/25 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
BootStrap中
2016/12/10 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
2017/01/08 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
JS中如何轻松遍历对象属性的方式总结
2019/08/06 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
node静态服务器实现静态读取文件或文件夹
2019/12/03 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
python实现telnet客户端的方法
2015/04/15 Python
python 字典中取值的两种方法小结
2018/08/02 Python
Python中如何导入类示例详解
2019/04/17 Python
python opencv 批量改变图片的尺寸大小的方法
2019/06/28 Python
django之自定义软删除Model的方法
2019/08/14 Python
Python测试线程应用程序过程解析
2019/12/31 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
工程师岗位职责规定
2014/02/26 职场文书
奥利奥广告词
2014/03/20 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
爱心捐款倡议书
2014/04/14 职场文书
调研汇报材料范文
2014/08/17 职场文书
500字小学生检讨书
2015/02/19 职场文书
海底两万里读书笔记
2015/06/26 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
Tomcat弱口令复现及利用
2022/05/06 Servers