vue路由实现代码
以下是一个基于 Vue Router 实现路由的完整代码示例,包含基础配置和动态路由等常见功能:
安装 Vue Router
在项目中安装 Vue Router(需提前初始化 Vue 项目):
npm install vue-router
基础路由配置
创建路由配置文件(通常为 src/router/index.js):
import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'
const routes = [
{
path: '/',
name: 'home',
component: HomeView
},
{
path: '/about',
name: 'about',
component: () => import('../views/AboutView.vue')
}
]
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes
})
export default router
路由视图与导航
在主入口文件(如 src/main.js)中挂载路由:
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 中添加路由视图和导航:

<template>
<nav>
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link>
</nav>
<router-view/>
</template>
动态路由
通过冒号 : 定义动态路径参数:
{
path: '/user/:id',
name: 'user',
component: () => import('../views/UserView.vue')
}
在组件中访问路由参数:
<script setup>
import { useRoute } from 'vue-router'
const route = useRoute()
console.log(route.params.id)
</script>
导航守卫
添加全局前置守卫:

router.beforeEach((to, from, next) => {
if (to.meta.requiresAuth && !isAuthenticated) {
next('/login')
} else {
next()
}
})
路由元信息
定义路由元数据:
{
path: '/admin',
meta: { requiresAuth: true },
component: () => import('../views/AdminView.vue')
}
嵌套路由
配置嵌套路由:
{
path: '/user/:id',
component: UserView,
children: [
{
path: 'profile',
component: UserProfile
},
{
path: 'posts',
component: UserPosts
}
]
}
在父组件中添加 <router-view> 显示子路由:
<template>
<div>
<h2>User Page</h2>
<router-view></router-view>
</div>
</template>
编程式导航
通过代码控制导航:
import { useRouter } from 'vue-router'
const router = useRouter()
// 跳转到指定路径
router.push('/about')
// 带参数跳转
router.push({ name: 'user', params: { id: 123 } })
// 替换当前路由
router.replace('/login')
以上代码涵盖了 Vue Router 的核心功能,可根据实际需求进行调整和扩展。






