0%

vue-router使用

vue-router

记录下在vue中使用vue-router做路由的基础用法。

安装vue-router

1
npm install vue-router --save

挂载vue-router

在src文件夹下创建routes并创建main.js文件

下列是INote的路由源码,做示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import { createRouter, createWebHashHistory } from 'vue-router'
const routes = [
{
name: 'notes',
path: '/',
component: () => import('../views/Notes.vue'),
},
{
name: 'settings',
path: '/settings',
component: () => import('../views/Settings.vue'),
},
{
name: 'my',
path: '/my',
component: () => import('../views/My.vue'),
},
{
name: 'login',
path: '/login',
component: () => import('../views/Login.vue'),
},
{
name: 'about',
path: '/about',
component: () => import('../views/About.vue'),
},
{
name: 'editor',
path: '/editor/:index',
component: () => import('../views/Editor.vue')
},
{
name: 'markdown',
path: '/markdown/:index',
component: () => import('../views/Markdown.vue')
}
];

const router = createRouter({
routes,
history: createWebHashHistory(),
})

router.beforeEach((to, from, next) => {
if (to.name == 'my') {
// 获取本地存储的token
const token = localStorage.getItem('token')
// 如果有token
if (token) {
// console.log(1)
next()
} else {
// 如果没有token,则重定向到login路由
if (to.name !== 'login') {
next({ name: 'login' })
} else {
// 否则继续导航
next()
}
}
} else {
next()
}

})

export default router

在src下的main.js下引入vue-router:

1
import router from './routes'

并在createApp后挂载router:

1
.use(router)

再打开App.vue并引入vue-router:

1
import { useRouter } from 'vue-router'

将router实例化:

1
const router = useRouter()

<template>标签中写入router的路由:

1
<router-view></router-view>