[vue-router4进阶] 1.路由匹配

2021-11-03  本文已影响0人  林哥学前端

我们继续来学习关于路由匹配更多的用法

404页面

我们要配置一个路由,如果用户进入一个我们在route中没有定义过的页面,就让他进入404页面,
首先写一个vue文件,表示404页面,在views下新建一个文件404.vue:

<template>
  <div>404</div>
</template>

<script>
export default {
}
</script>

<style></style>

这个页面除了显示了一个404什么也没有,很简单。
然后在router.js文件的routes里定义我们的404路由,一般来说,我们把404路由定义在最后:

  {
    path: '/:pathMatch(.*)*',
    name: 'notFound',
    component: () => import('./views/404'),
  },

这样,如果用户进入没定义过的路由,我们都会给他显示404页面。
比如,进入http://localhost/:8081/linge
/linge这个路由我们在routes中没有定义过,所以页面会显示404.
在path属性中定义的这个pathMatch,我们可以通过它获取路由的值,
我们在404.vue中增加打印

<template>
  <div>404</div>
</template>

<script>
export default {
  mounted() {
    console.log(this.$route.params.pathMatch) // 新增
  },
}
</script>

<style></style>

我们可以看到控制台输出了:

['linge']

它是一个数组,linge就是我们当前的路由
我们把进入http://localhost:8081/linge/haha
控制台就会输出

['linge', 'haha']

这样我们不但可以把未定义的路由让他进入404页面,也可以获取这个路由的具体路径是什么

以特定字符串开头的路由匹配

比如说我们有一个会员页面,如果路由是以member开头,都进入这个页面,这个写法其实和上面的非常类似,我们先写一个member.vue,当做页面内容:

<template>
  <div>会员专页</div>
</template>

<script>
export default {}
</script>

<style></style>

然后在router.js中的route添加一个路由:

  {
    path: '/member:id(.*)',
    component: () => import('./views/member'),
    name: 'member',
  },

这样我们在浏览器中输入http://localhost:8081/member
就可以进入会员页面
http://localhost:8081/member01也可以进入会员页面,
我们在member.vue中还可以获取到member后面跟的数字,因为我们在route中定义了它叫id

<template>
  <div>会员专页</div>
</template>

<script>
export default {
  mounted() {
    console.log(this.$route.params.id) // 新增
  },
}
</script>
<style></style>

这是控制台打印了

01

这样我们就是实现了匹配所有以member开头的路由了。

官网上介绍了更高级路由匹配模式,不过我觉着没什么用,这里就不再介绍了,有兴趣的小伙伴可以自己去看看。

上一篇下一篇

猜你喜欢

热点阅读