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 相关文章推荐
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
Nov 03 Javascript
jquery tools之tabs 选项卡/页签
Jul 25 Javascript
BootStrap实用代码片段之一
Mar 22 Javascript
带有定位当前位置的百度地图前端web api实例代码
Jun 21 Javascript
js案例之鼠标跟随jquery版(实例讲解)
Jul 21 jQuery
AngularJS中controller控制器继承的使用方法
Nov 03 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
Nov 09 Javascript
解决Angular4项目部署到服务器上刷新404的问题
Aug 31 Javascript
webpack4.x CommonJS模块化浅析
Nov 09 Javascript
vuex实现数据状态持久化
Nov 11 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Sep 04 Javascript
JavaScript高级程序设计之变量与作用域
Nov 17 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
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
2014/12/18 PHP
WordPress迁移时一些常见问题的解决方法整理
2015/11/24 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
Python写的PHPMyAdmin暴力破解工具代码
2014/08/06 Python
Python3基础之输入和输出实例分析
2014/08/18 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
python 图像增强算法实现详解
2021/01/24 Python
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
管理学专业个人求职信范文
2013/12/13 职场文书
周鸿祎:教你写创业计划书
2013/12/30 职场文书
高一新生军训方案
2014/05/12 职场文书
酒店管理毕业生自荐信
2014/05/25 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
二年级作文之动物作文
2019/11/13 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android
react 路由Link配置详解
2021/11/11 Javascript
Python+Tkinter打造签名设计工具
2022/04/01 Python