vue router实现方式
Vue Router 的基本实现
安装 Vue Router 依赖包
通过 npm 或 yarn 安装最新版本:
npm install vue-router@4
在项目中创建路由配置文件
通常命名为 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(),
routes
})
export default router
路由模式选择
哈希模式(Hash Mode)
适合无需服务器配置的简单项目,URL 会带 # 符号:
createWebHashHistory()
HTML5 历史模式
需要服务器支持,URL 更简洁:
createWebHistory()
路由视图与导航
在主入口文件挂载路由
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
createApp(App).use(router).mount('#app')
模板中使用路由

<router-view/> <!-- 路由出口 -->
<router-link to="/about">About</router-link> <!-- 导航链接 -->
动态路由匹配
参数传递与接收
{ path: '/user/:id', component: User }
组件内通过 $route.params.id 获取参数,或使用组合式 API:
import { useRoute } from 'vue-router'
const route = useRoute()
console.log(route.params.id)
导航守卫
全局前置守卫

router.beforeEach((to, from, next) => {
if (to.meta.requiresAuth) next('/login')
else next()
})
路由独享守卫
{
path: '/admin',
component: Admin,
beforeEnter: (to, from) => {
// 拒绝导航
return false
}
}
路由元信息
定义路由时添加 meta 字段
{
path: '/profile',
component: Profile,
meta: { requiresAuth: true }
}
路由懒加载
动态导入组件提升性能
{
path: '/dashboard',
component: () => import('../views/Dashboard.vue')
}
编程式导航
在组件逻辑中跳转
import { useRouter } from 'vue-router'
const router = useRouter()
// 字符串路径
router.push('/users')
// 带参数的对象
router.push({ path: '/register', query: { plan: 'private' } })






