vue路由实现segment
Vue 路由实现 Segment 风格路由
在 Vue Router 中实现类似 Segment 风格的路由(即扁平化、无嵌套的 URL 结构),可以通过动态路由和编程式导航实现。
安装 Vue Router 确保项目中已安装 Vue Router。若未安装,可通过以下命令添加:
npm install vue-router
配置基本路由
在 router/index.js 中配置动态路由参数,使用 : 标记动态字段:
import { createRouter, createWebHistory } from 'vue-router';
const routes = [
{
path: '/:segment1',
component: () => import('@/views/SegmentView.vue')
},
{
path: '/:segment1/:segment2',
component: () => import('@/views/SegmentView.vue')
}
];
const router = createRouter({
history: createWebHistory(),
routes
});
export default router;
动态路由组件
在组件中通过 useRoute 访问当前路由参数:
<template>
<div>
<p>当前 Segment: {{ $route.params.segment1 }}</p>
<p>嵌套 Segment: {{ $route.params.segment2 }}</p>
</div>
</template>
<script setup>
import { useRoute } from 'vue-router';
const route = useRoute();
</script>
编程式导航
通过 router.push 动态生成 Segment 路由:
import { useRouter } from 'vue-router';
const router = useRouter();
function navigateToSegment(segment) {
router.push(`/${segment}`);
}
路由匹配优化 若需严格匹配特定 Segment 模式,可通过正则约束:
{
path: '/:segment1(\\w+)', // 仅匹配字母数字
component: SegmentView
}
处理 404 页面
添加通配符路由捕获未匹配的路径:
{
path: '/:pathMatch(.*)*',
component: () => import('@/views/NotFound.vue')
}
动态路由监听
响应路由参数变化时,需监听 $route 对象:
watch(
() => route.params.segment1,
(newSegment) => {
console.log('Segment changed:', newSegment);
}
);
通过以上配置,Vue Router 可实现类似 Segment 的扁平化路由结构,支持动态参数和灵活导航。







