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 相关文章推荐
jquery插件jquery倒计时插件分享
Dec 27 Javascript
jquery通过ajax加载一段文本内容的方法
Jan 15 Javascript
JavaScript学习笔记之JS函数
Jan 22 Javascript
jquery常用的12个小功能
Jul 22 Javascript
jQuery多个版本和其他js库冲突的解决方法
Aug 11 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
Oct 31 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
Oct 24 Javascript
关于axios如何全局注册浅析
Jan 14 Javascript
vuex页面刷新后数据丢失的方法
Jan 17 Javascript
vue项目前端错误收集之sentry教程详解
May 27 Javascript
vue如何使用async、await实现同步请求
Dec 09 Javascript
javascript自定义加载loading效果
Sep 15 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
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
discuz的php防止sql注入函数
2011/01/17 PHP
PHP源码之explode使用说明
2011/08/05 PHP
php中将字符串转为HTML的实体引用的一个类
2013/02/03 PHP
ThinkPHP表单自动验证实例
2014/10/13 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
window.ActiveXObject使用说明
2010/11/08 Javascript
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
js实现动态添加上传文件页面
2018/10/22 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
详解numpy.meshgrid()方法使用
2019/08/01 Python
Python实现TCP通信的示例代码
2019/09/09 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
Python实现自动装机功能案例分析
2020/10/22 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
新闻人物通讯稿
2014/10/09 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
go语言map与string的相互转换的实现
2021/04/07 Golang
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技
使用Python开发冰球小游戏
2022/04/30 Python