vue实现路由
Vue 路由的实现方法
在 Vue 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,能够轻松实现单页应用(SPA)中的页面切换和导航。
安装 Vue Router
通过 npm 或 yarn 安装 Vue Router:
npm install vue-router
或
yarn add vue-router
基本配置
- 创建路由实例并定义路由规则:
import { createRouter, createWebHistory } from 'vue-router' import Home from './views/Home.vue' import About from './views/About.vue'
const router = createRouter({ history: createWebHistory(), routes: [ { path: '/', component: Home }, { path: '/about', component: About } ] })
2. 在主应用中注册路由:
```javascript
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
const app = createApp(App)
app.use(router)
app.mount('#app')
路由视图和导航
-
在组件模板中使用
<router-view>显示匹配的组件:<template> <div id="app"> <router-view></router-view> </div> </template> -
使用
<router-link>进行导航:
<router-link to="/">Home</router-link> <router-link to="/about">About</router-link>
动态路由匹配
可以通过冒号 : 定义动态路由参数:
{
path: '/user/:id',
component: User
}
在组件中访问路由参数:
import { useRoute } from 'vue-router'
export default {
setup() {
const route = useRoute()
const userId = route.params.id
}
}
嵌套路由
通过 children 属性实现嵌套路由:

{
path: '/user/:id',
component: User,
children: [
{ path: 'profile', component: Profile },
{ path: 'posts', component: Posts }
]
}
在父组件模板中添加嵌套的 <router-view>:
<template>
<div>
<h2>User</h2>
<router-view></router-view>
</div>
</template>
导航守卫
Vue Router 提供导航守卫来控制路由跳转:
router.beforeEach((to, from, next) => {
if (to.meta.requiresAuth && !isAuthenticated) {
next('/login')
} else {
next()
}
})
路由懒加载
使用动态导入实现路由懒加载,优化性能:
{
path: '/about',
component: () => import('./views/About.vue')
}
编程式导航
在组件方法中通过 router 实例进行导航:
import { useRouter } from 'vue-router'
export default {
setup() {
const router = useRouter()
const navigate = () => {
router.push('/about')
}
return { navigate }
}
}
以上方法涵盖了 Vue Router 的基本用法,可以根据实际需求选择适合的方式实现路由功能。






