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 相关文章推荐
cloudgamer出品ImageZoom 图片放大效果
Apr 01 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
Jun 24 Javascript
将数字转换成大写的人民币表达式的js函数
Sep 21 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
Oct 23 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
Mar 25 Javascript
SpringMVC+bootstrap table实例详解
Jun 02 Javascript
JS 实现分页打印功能
May 16 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
May 18 Javascript
如何使用puppet替换文件中的string
Dec 06 Javascript
vue实现直播间点赞飘心效果的示例代码
Sep 20 Javascript
使用JavaScript计算前一天和后一天的思路详解
Dec 20 Javascript
Vue的全局过滤器和私有过滤器的实现
Apr 20 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
android上传图片到PHP的过程详解
2015/08/03 PHP
php封装的表单验证类完整实例
2016/10/19 PHP
Mootools 1.2教程 正则表达式
2009/09/15 Javascript
js 获取(接收)地址栏参数值的方法
2013/04/01 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
vue通过cookie获取用户登录信息的思路详解
2018/10/30 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
node.js如何操作MySQL数据库
2020/10/29 Javascript
在vue中给后台接口传的值为数组的格式代码
2020/11/12 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
[46:38]完美世界DOTA2联赛PWL S2 Magma vs PXG 第三场 11.28
2020/12/02 DOTA
用python制作游戏外挂
2018/01/04 Python
python实现大转盘抽奖效果
2019/01/22 Python
Python和Bash结合在一起的方法
2020/11/13 Python
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
Java程序员面试题
2013/07/15 面试题
企业演讲稿范文
2013/12/28 职场文书
阿德的梦教学反思
2014/02/06 职场文书
《猴子种树》教学反思
2014/02/14 职场文书
《走一步再走一步》教学反思
2014/02/15 职场文书
《日月潭》教学反思
2014/02/28 职场文书
债务纠纷代理词
2015/05/25 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书