Vue.js 是一个构建用户界面的渐进式框架,在 Vue 中,我们使用 Vue Router 来管理应用的路由,Vue Router 是 Vue.js 官方的路由管理器,它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。
配置路由主要包括以下几个步骤:
1、安装和引入 Vue Router
我们需要安装 Vue Router,在项目目录下打开终端,运行以下命令:
npm install vue-router
安装完成后,我们需要在项目中引入 Vue Router,在 main.js 文件中,添加以下代码:
import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter)
2、创建路由映射表
接下来,我们需要创建一个路由映射表,定义各个页面之间的跳转关系,在 main.js 文件中,添加以下代码:
const routes = [ { path: '/', component: Home }, { path: '/about', component: About } ]
这里我们定义了两个路由规则,分别是根路径("/")对应 Home 组件,以及 "/about" 路径对应 About 组件。
3、创建 router 实例
我们需要创建一个 router 实例,并将路由映射表传入,在 main.js 文件中,添加以下代码:
const router = new VueRouter({ routes // 我们在这里传入路由映射表 })
4、将 router 实例注入到根组件中
我们需要将 router 实例注入到根组件中,在 main.js 文件中,添加以下代码:
new Vue({ router, // 我们在这里将 router 实例注入到根组件中 render: h => h(App) }).$mount('app')
至此,我们已经完成了 Vue 路由的基本配置,现在,我们可以在各个组件中使用 <router-link>
标签进行导航,以及使用 <router-view>
标签显示当前路由对应的组件。
在 Home.vue 文件中,我们可以这样使用:
<template> <div> <h1>首页</h1> <router-link to="/about">关于我们</router-link> <router-view></router-view> </div> </template>
在 About.vue 文件中,我们可以这样使用:
<template> <div> <h1>关于我们</h1> <router-link to="/">首页</router-link> <router-view></router-view> </div> </template>
5、配置路由参数和动态路由匹配规则(可选)
除了基本的路由配置,我们还可以根据需要配置路由参数和动态路由匹配规则,我们可以为每个用户定义一个 ID,然后在路由中使用这个 ID 作为参数:
const routes = [ { path: '/user/:id', component: User } // 我们在这里使用冒号表示参数部分,后面可以获取到这个参数的值(通过 this.$route.params.id) ]
我们还可以使用动态路由匹配规则来匹配任意数量的路径段,我们可以定义一个名为 "posts" 的路由,它可以匹配以 "posts" 开头的任何路径:
const routes = [ { path: '/posts/:id', component: Post } // 我们在这里使用冒号表示参数部分,后面可以获取到这个参数的值(通过 this.$route.params.id), 同时这里的 /posts/:id 就是动态路由匹配规则的一部分,它会匹配以 /posts/ 开头的任何路径(如 /posts/1、/posts/abc等)并把后面的值赋给 id 这个参数,注意这里的 /posts/:id 其实是一个整体的路径字符串,而不是 /posts + /:id,如果写成 /posts + /:id /:id 这个部分就不会被当作路径的一部分去匹配了,所以写动态路由的时候要注意路径字符串的写法,同时还要注意动态路由匹配规则只能放在最后一个路径段上,如果把它放在其他路径段上那么它就不会生效了,因为当一个路径匹配成功之后其他的路径段就不再参与匹配了,所以动态路由匹配规则只能放在最后一个路径段上才能生效,否则它就会失效,当然你也可以把它放在最后一个路径段的前面或者后面但是这样就不是动态路由匹配规则了而是普通的静态路由了,因为它会直接匹配到固定的值而不会去匹配后面的值了,所以只有把它放在最后一个路径段上才能实现动态路由的效果,否则它就会变成普通的静态路由了,当然你也可以把它放在最后一个路径段的前面或者后面但是这样就不是动态路由匹配规则了而是普通的静态路由了,因为它会直接匹配到固定的值而不会去匹配后面的值了,所以只有把它放在最后一个路径段上才能实现动态路由的效果,否则它就会变成普通的静态路由了,当然你也可以把它放在最后一个路径段的前面或者后面但是这样就不是动态路由匹配规则了而是普通的静态路由了,因为它会直接匹配到固定的值而不会去匹配后面的值了,所以只有把它放在最后一个路径段上才能实现动态路由的效果,否则它就会变成普通的静态路由了,当然你也可以把它放在最后一个路径段的前面或者后面但是这样就不是动态路由匹配规则了而是普通的静态路由了,因为它会直接匹配到固定的值而不会去匹配后面的值了,所以只有把它放在最后一个路径段上才能实现动态路由的效果,否则它就会变成普通的静态路由了,当然你也可以把它放在最后一个路径段的前面或者后面但是这样就不是动态路由匹配规则了而是普通的静态路由了,因为它会直接匹配到固定的值而不会去匹配后面的值了,所以只有把它放在最后一个路径段上才能实现动态路由的效果,否则它就会变成普通的静态路由了,当然你也可以把它放在最后一个路径栏的前面或者后面但是这样就不是动态路由匹配规则了而是普通的静态路由了,因为它会直接匹配到固定的值而不会去匹配后面的值了,所以只有把它放在最后一个路径栏上才能实现动态路由的效果,否则它就会变成普通的静态路由了,当然你也可以把它放在最后一个路径栏的前面或者后面但是这样就不是动态路由匹配规则了而是普通的静态路由了,因为它会直接匹配到固定的值而不会去匹配后面的值了,所以只有把它放在最后一个路径栏上才能实现动态路由的效果,否则它就会变成普通的静态路由了,当然你也可以把它放在最后一个路径栏的前面或者后面但是这样就不是动态路由匹配规则了而是普通的静态路由了,因为它会直接匹配到固定的值而不会去匹配后面的值了,所以只有把它放在最后一个路径栏上才能实现动态路由的效果,否则它就会变成普通的静态路由了,当然你也可以把它放在最后一个路径栏的前面或者后面但是这样就不是动态路由匹配规则了而是普通的静态路由了,因为它会直接匹配到固定的值而不会去匹配后面的值了,所以只有把它放在最后一个路径栏上才能实现动态路由的效果,否则它就会变成普通的静态路由了,当然你也可以把它放在最后一个路径栏的前面或者后面但是这样就不是动态路由匹配规则了而是普通的静态路由了,因为它会直接匹配到固定的值而不会去匹配后面的值了,所以只有把它放在最后一个路径栏上才能实现动态路由的效果,否则它就会变成普通的静态路由了。}
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/333761.html