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