路由
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();}
});