vue-router 的基本使用
生活随笔
收集整理的这篇文章主要介绍了
vue-router 的基本使用
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
vue-router 的基本使用
1. 什么是 vue-router
vue-router 是 vue.js 官方给出的路由解决方案。它只能结合 vue 项目进行使用,能够轻松的管理 SPA 项中组件的切换。
vue-router 的官方文档地址:https://router.vuejs.org/zh/
2. vue-router 安装和配置的步骤
① 安装 vue-router 包
② 创建路由模块
③ 导入并挂载路由模块
④ 声明路由链接和占位符
2.1 在项目中安装 vue-router
在 vue2 的项目中,安装 vue-router 的命令如下:
2.2 创建路由模块
在 src 源代码目录下,新建 router/index.js 路由模块,并初始化如下的代码:
import Vue from 'vue' import VueRouter from 'vue-router' import pathArr from '@/router/pathArr.js'// 导入需要的组件 import Login from '@/components/MyLogin.vue' import Home from '@/components/MyHome.vue'import Users from '@/components/menus/MyUsers.vue' import Rights from '@/components/menus/MyRights.vue' import Goods from '@/components/menus/MyGoods.vue' import Orders from '@/components/menus/MyOrders.vue' import Settings from '@/components/menus/MySettings.vue' import UserDetail from '@/components/user/MyUserDetail.vue'Vue.use(VueRouter)const router = new VueRouter({routes: [{ path: '/', redirect: '/login' },// 登录的路由规则{ path: '/login', component: Login },// 后台主页的路由规则{path: '/home',component: Home,redirect: '/home/users',children: [{ path: 'users', component: Users },{ path: 'rights', component: Rights },{ path: 'goods', component: Goods },{ path: 'orders', component: Orders },{ path: 'settings', component: Settings },// 用户详情页的路由规则{ path: 'userinfo/:id', component: UserDetail, props: true }]}] })// 全局前置守卫 router.beforeEach(function(to, from, next) {if (pathArr.indexOf(to.path) !== -1) {const token = localStorage.getItem('token')if (token) {next()} else {next('/login')}} else {next()} })export default router2.3 导入并挂载路由模块
在 src/main.js 入口文件中,导入并挂载路由模块。示例代码如下:
官网挂在路由模块介绍:
// 0. 如果使用模块化机制编程,导入Vue和VueRouter,要调用 Vue.use(VueRouter)// 1. 定义 (路由) 组件。 // 可以从其他文件 import 进来 const Foo = { template: '<div>foo</div>' } const Bar = { template: '<div>bar</div>' }// 2. 定义路由 // 每个路由应该映射一个组件。 其中"component" 可以是 // 通过 Vue.extend() 创建的组件构造器, // 或者,只是一个组件配置对象。 // 我们晚点再讨论嵌套路由。 const routes = [{ path: '/foo', component: Foo },{ path: '/bar', component: Bar } ]// 3. 创建 router 实例,然后传 `routes` 配置 // 你还可以传别的配置参数, 不过先这么简单着吧。 const router = new VueRouter({routes // (缩写) 相当于 routes: routes })// 4. 创建和挂载根实例。 // 记得要通过 router 配置参数注入路由, // 从而让整个应用都有路由功能 const app = new Vue({router }).$mount('#app')// 现在,应用已经启动了!实际开发中:
import Vue from 'vue' import App from './App.vue' // 导入路由模块,目的:拿到路由的实例对象 // 在进行模块化导入的时候,如果给定的是文件夹,则默认导入这个文件夹下,名字叫做 index.js 的文件 //相当于import router from '@/router/index.js' //下面的这种写法,程序会自动导入相应的index.js文件 import router from '@/router'Vue.config.productionTip = falsenew Vue({render: h => h(App),// 在 Vue 项目中,要想把路由用起来,必须把路由实例对象,通过下面的方式进行挂载// router: 路由的实例对象//下面是简写的方式,相当于: router:router//当key和value的值相同的时候就可以使用简写的方式router }).$mount('#app')2.4 声明路由链接和占位符
在 src/App.vue 组件中,使用 vue-router 提供的router-link标签和 router-view标签声明路由链接和占位符:
官网中声明路由链接和占位符:
实际开发中:
router-link相当于a标签,触发需要加载的页面,需要加载的页面被触发之后,会自动加载到router-view标签中显示。
3. 声明路由的匹配规则
在 src/router/index.js 路由模块中,通过 routes 数组声明路由的匹配规则。示例代码如下:
实际开发中:
总结
以上是生活随笔为你收集整理的vue-router 的基本使用的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 前端路由的概念与原理
- 下一篇: vue-router 的常见用法