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 相关文章推荐
javascript下查找父节点的简单方法
Aug 13 Javascript
js原生appendChild的bug解决心得分享
Jul 01 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
Feb 20 Javascript
jQuery实现高亮显示的方法
Mar 10 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
Sep 19 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
Feb 26 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
May 17 Javascript
jquery.tableSort.js表格排序插件使用方法详解
Aug 12 Javascript
JS switch判断 三目运算 while 及 属性操作代码
Sep 03 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
Dec 04 Javascript
vue 中 beforeRouteEnter 死循环的问题
Apr 23 Javascript
vue-socket.io接收不到数据问题的解决方法
May 13 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
PHP数组传递是值传递而非引用传递概念纠正
2013/01/31 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
2014/08/20 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
详解javascript函数的参数
2015/11/10 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
2016/09/05 Javascript
AngularJS通过ng-route实现基本的路由功能实例详解
2016/12/13 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
Python常用库推荐
2016/12/04 Python
Unicode和Python的中文处理
2017/03/19 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
2018/01/23 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
HTML5 预加载让页面得以快速呈现
2013/08/13 HTML / CSS
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
英格兰橄榄球商店:England Rugby Store
2016/12/17 全球购物
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
信息部岗位职责
2013/11/12 职场文书
毕业实习个人鉴定范文
2013/12/10 职场文书
毕业证委托书范文
2014/09/26 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
总经理助理岗位职责
2015/01/31 职场文书
入党培养人考察意见
2015/06/08 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript