Vue学习笔记集--路由
路由
Vue Router 是 Vue.js 官方的路由管理器,用于在 Vue 应用程序中实现单页面应用(SPA)的路由功能。以下是 Vue Router 的基本使用方法:
安装 Vue Router
如果你使用的是 Vue 2,可以通过 npm 安装 Vue Router:
npm install vue-router@3
如果你使用的是 Vue 3,则需要安装 Vue Router 4:
npm install vue-router@4
创建路由实例
在项目中创建一个路由配置文件,例如 router.js
:
import { createRouter, createWebHistory } from 'vue-router';
import Home from './views/Home.vue';
import About from './views/About.vue';
const routes = [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/about',
name: 'About',
component: About
}
];
const router = createRouter({
history: createWebHistory(),
routes
});
export default router;
在主应用中使用路由
在 main.js
中引入路由并挂载到 Vue 实例:
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
const app = createApp(App);
app.use(router);
app.mount('#app');
在模板中使用路由
在 App.vue
中使用 <router-view>
标签来渲染匹配的路由组件:
<template>
<div id="app">
<nav>
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link>
</nav>
<router-view></router-view>
</div>
</template>
创建路由组件
创建 views
文件夹,并在其中创建路由对应的组件,例如 Home.vue
和 About.vue
:
<!-- views/Home.vue -->
<template>
<div>
<h1>Home Page</h1>
</div>
</template>
<!-- views/About.vue -->
<template>
<div>
<h1>About Page</h1>
</div>
</template>
路由的高级功能
动态路由匹配
可以使用动态段来创建具有动态参数的路由:
const routes = [
{
path: '/user/:id',
name: 'User',
component: User
}
];
在组件中可以通过 $route.params
获取动态参数:
export default {
created() {
console.log(this.$route.params.id);
}
}
嵌套路由
可以定义嵌套的路由:
const routes = [
{
path: '/user',
component: User,
children: [
{
path: 'profile',
component: Profile
},
{
path: 'posts',
component: Posts
}
]
}
];
导航守卫
可以使用导航守卫来控制路由的访问:
router.beforeEach((to, from, next) => {
if (to.meta.requiresAuth && !isAuthenticated) {
next('/login');
} else {
next();
}
});