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解决由border属性引起的div宽度问题
Nov 26 Javascript
js+css实现上下翻页相册代码分享
Aug 18 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
Oct 25 Javascript
js鼠标点击图片切换效果实现代码
Nov 19 Javascript
JavaScript小技巧整理
Dec 30 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
May 21 Javascript
jQuery UI结合Ajax创建可定制的Web界面
Jun 22 Javascript
前端微信支付js代码
Jul 25 Javascript
微信小程序搭建自己的Https服务器
May 02 Javascript
微信小程序系列之自定义顶部导航功能
May 21 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
Feb 10 Javascript
jquery实现拖拽小方块效果
Dec 10 jQuery
详解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/11/06 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
JS实现的哈夫曼编码示例【原始版与修改版】
2018/04/22 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
vue filters的使用详解
2018/06/11 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
用python3教你任意Html主内容提取功能
2018/11/05 Python
Python如何调用外部系统命令
2019/08/07 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
详解Python的三种拷贝方式
2020/02/11 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
Clarria化妆品官方网站:购买天然和有机化妆品系列
2018/04/08 全球购物
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
《鱼游到了纸上》教学反思
2014/02/20 职场文书
酒店保安领班职务说明书
2014/03/04 职场文书
商超业务员岗位职责
2014/03/12 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
退伍军人感言
2015/08/01 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python