vue.js vue-router如何实现无效路由(404)的友好提示

 更新时间:2017年12月20日 09:34:24   作者:JasonScript  
众所周知vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用,下面这篇文章主要给大家介绍了关于vue.js中vue-router如何实现无效路由(404)的友好提示的相关资料,需要的朋友可以参考下。

前言

大家都知道对于单页应用,官方提供了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要多友好就看自己了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • vue导出报表至excel表格三种方式

    vue导出报表至excel表格三种方式

    这篇文章主要给大家介绍了关于vue导出报表至excel表格的三种方式,导出报表是实际开发的常见功能,前后端都可以实现表格导出,本文介绍的是用vue实现,需要的朋友可以参考下
    2023-09-09
  • Vue+Vant 图片上传加显示的案例

    Vue+Vant 图片上传加显示的案例

    这篇文章主要介绍了Vue+Vant 图片上传加显示的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Vue中$refs的用法详解

    Vue中$refs的用法详解

    这篇文章主要介绍了Vue中$refs的用法,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-06-06
  • vue内置指令详解

    vue内置指令详解

    指令是Vue模板中最常用的一项功能,它带有前缀v-,主要职责是当其表达式的值改变时,相应的将某些行为应用在 DOM 上。这篇文章主要介绍了vue内置指令详解,需要的朋友可以参考下
    2018-04-04
  • 使用vue封装一个自定义样式的滚动条

    使用vue封装一个自定义样式的滚动条

    众所周知,当容器高度固定而内容部分高度超出容器高度时,浏览器会渲染出一个可以滚动并用于显示剩余界面的条 -- 滚动条,它可以简单的样式修改,但是位置是固定的,无法移动,而我们需要改变位置的时候,它就不能满足我们的需求了,这时我们可以自己手写一个
    2023-10-10
  • 浅谈VUE uni-app 自定义组件

    浅谈VUE uni-app 自定义组件

    这篇文章主要介绍了uni-app 的自定义组件,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • 基于vuejs+webpack的日期选择插件

    基于vuejs+webpack的日期选择插件

    这篇文章主要为大家详细介绍了基于vuejs+webpack的日期选择插件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Vue 3 使用moment设置显示时间格式的问题及解决方法

    Vue 3 使用moment设置显示时间格式的问题及解决方法

    在Vue 3中,因为过滤器(filter)已经被废弃,取而代之的是全局方法(global method),本文给大家介绍Vue 3 使用moment设置显示时间格式的问题及解决方法,感兴趣的朋友一起看看吧
    2023-12-12
  • 如何通过shell脚本自动生成vue文件详解

    如何通过shell脚本自动生成vue文件详解

    这篇文章主要给大家介绍了关于如何通过shell脚本自动生成vue文件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用vue具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 详解Vue3 SFC 和 TSX 方式调用子组件中的函数

    详解Vue3 SFC 和 TSX 方式调用子组件中的函数

    在使用 .vue 定义的组件中,setup 中提供了 defineExpose() 方法,该方法可以将组件内部的方法暴露给父组件,这篇文章主要介绍了Vue3 SFC 和 TSX 方式调用子组件中的函数,需要的朋友可以参考下
    2022-10-10

最新评论