使用 Vue Router
Vue Lynx 应用可以使用 Vue Router(Vue 官方路由库)来管理视图之间的导航。但由于 Lynx 没有浏览器的 window.location 和 History API,你必须使用 createMemoryHistory() 代替 createWebHistory() —— 类似于 React Router 提供的 MemoryRouter 或 TanStack Router 为非浏览器环境提供的内存路由。
安装依赖
创建路由
使用 createMemoryHistory() 创建一个将路由状态完全保存在进程内存中的 history 实例,无需依赖浏览器 API:
src/router.ts
然后安装路由插件并挂载应用:
src/index.ts
使用 <RouterView>
<RouterView> 渲染当前路由匹配的组件。它在 Lynx 中无需任何修改即可正常使用:
src/App.vue
不使用 <a> 标签的导航方式
在浏览器中,<RouterLink> 默认渲染为 <a> 标签。由于 Lynx 没有 <a> 元素,你有两种选择:
方式一:使用 RouterLink 的 custom 插槽
使用 RouterLink 的 custom prop 配合作用域插槽 API,渲染 Lynx 原生元素并保留 isActive 状态:
src/NavLink.vue
方式二:编程式导航
使用 useRouter() 组合式函数进行编程式导航:
src/views/UserList.vue
你也可以像平常一样使用 router.back() 和 router.replace()。
动态路由参数
通过 useRoute() 访问动态路由参数:
src/views/UserDetail.vue
为什么使用 Memory History?
createMemoryHistory() 专为没有浏览器的环境设计 —— SSR、测试以及 Lynx 等原生运行时。路由状态存储在一个简单的内存数组中,因此 router.push()、router.back() 和动态参数等功能都能正常工作。