{"_id":"@composy/router-vue","name":"@composy/router-vue","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@composy/router-vue","type":"module","version":"0.0.1","description":"Vue 3 router library with enhanced features, built on vue-router","author":{"name":"ldesign"},"license":"MIT","homepage":"https://gitee.com/ldesign-v1/ldesign","repository":{"type":"git","url":"https://gitee.com/ldesign-v1/ldesign.git","directory":"packages/router/packages/vue"},"bugs":{"url":"https://gitee.com/ldesign-v1/ldesign/issues"},"keywords":["vue","vue3","router","navigation","spa","typescript","vue-router"],"sideEffects":["**/*.css","**/*.vue"],"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js","require":"./lib/index.cjs","default":"./es/index.js"},"./adapter":{"types":"./es/adapter/index.d.ts","import":"./es/adapter/index.js","require":"./lib/adapter/index.cjs","default":"./es/adapter/index.js"},"./adapter/*":{"types":"./es/adapter/*.d.ts","import":"./es/adapter/*.js","require":"./lib/adapter/*.cjs","default":"./es/adapter/*.js"},"./components":{"types":"./es/components/index.d.ts","import":"./es/components/index.js","require":"./lib/components/index.cjs","default":"./es/components/index.js"},"./components/*":{"types":"./es/components/*.d.ts","import":"./es/components/*.js","require":"./lib/components/*.cjs","default":"./es/components/*.js"},"./composables":{"types":"./es/composables/index.d.ts","import":"./es/composables/index.js","require":"./lib/composables/index.cjs","default":"./es/composables/index.js"},"./composables/*":{"types":"./es/composables/*.d.ts","import":"./es/composables/*.js","require":"./lib/composables/*.cjs","default":"./es/composables/*.js"},"./config":{"types":"./es/config/index.d.ts","import":"./es/config/index.js","require":"./lib/config/index.cjs","default":"./es/config/index.js"},"./config/*":{"types":"./es/config/*.d.ts","import":"./es/config/*.js","require":"./lib/config/*.cjs","default":"./es/config/*.js"},"./devtools":{"types":"./es/devtools/index.d.ts","import":"./es/devtools/index.js","require":"./lib/devtools/index.cjs","default":"./es/devtools/index.js"},"./devtools/*":{"types":"./es/devtools/*.d.ts","import":"./es/devtools/*.js","require":"./lib/devtools/*.cjs","default":"./es/devtools/*.js"},"./plugins":{"types":"./es/plugins/index.d.ts","import":"./es/plugins/index.js","require":"./lib/plugins/index.cjs","default":"./es/plugins/index.js"},"./plugins/*":{"types":"./es/plugins/*.d.ts","import":"./es/plugins/*.js","require":"./lib/plugins/*.cjs","default":"./es/plugins/*.js"},"./router":{"types":"./es/router/index.d.ts","import":"./es/router/index.js","require":"./lib/router/index.cjs","default":"./es/router/index.js"},"./router/*":{"types":"./es/router/*.d.ts","import":"./es/router/*.js","require":"./lib/router/*.cjs","default":"./es/router/*.js"},"./types":{"types":"./es/types/index.d.ts","import":"./es/types/index.js","require":"./lib/types/index.cjs","default":"./es/types/index.js"},"./types/*":{"types":"./es/types/*.d.ts","import":"./es/types/*.js","require":"./lib/types/*.cjs","default":"./es/types/*.js"},"./index.css":"./dist/index.css","./index.min.css":"./dist/index.min.css","./components/RouterBreadcrumb.vue.css":"./es/components/RouterBreadcrumb.vue.css","./components/RouterGuard.vue.css":"./es/components/RouterGuard.vue.css","./components/RouterLink.vue.css":"./es/components/RouterLink.vue.css","./components/RouterModal.vue.css":"./es/components/RouterModal.vue.css","./components/RouterSkeleton.vue.css":"./es/components/RouterSkeleton.vue.css","./components/RouterTabs.vue.css":"./es/components/RouterTabs.vue.css","./components/RouterView.vue.css":"./es/components/RouterView.vue.css","./styles/transitions.css":"./es/styles/transitions.css","./package.json":"./package.json"},"main":"./lib/index.cjs","module":"./es/index.js","unpkg":"./dist/index.min.js","jsdelivr":"./dist/index.min.js","types":"./es/index.d.ts","engines":{"node":">=16.0.0","pnpm":">=8.0.0"},"scripts":{"build":"ldesign-builder build","build:watch":"ldesign-builder build --watch","clean":"rimraf es esm lib dist coverage .tsbuildinfo","lint":"eslint . --fix","lint:check":"eslint .","lint:fix":"eslint . --fix","test":"ltesting run:unit","test:watch":"ltesting run:unit --watch","type-check":"vue-tsc -p tsconfig.typecheck.json --noEmit","type-check:watch":"vue-tsc -p tsconfig.typecheck.json --noEmit --watch","test:run":"ltesting run:unit","test:coverage":"ltesting run:unit --coverage","test:changed":"ltesting run:unit --changed","test:failed":"ltesting run:unit --failed","test:ui":"ltesting dashboard"},"peerDependencies":{"vue":"^3.5.32","vue-router":"^4.2.0"},"dependencies":{"@composy/engine-core":"^0.0.1","@composy/router-core":"^0.0.1","vue-router":"^5.1.0"},"devDependencies":{"@antfu/eslint-config":"9.1.0","@composy/builder":"^0.0.1","@composy/testing":"^0.0.1","@types/node":"26.1.1","@vue/test-utils":"^2.4.11","eslint":"10.7.0","jsdom":"29.1.1","rimraf":"^6.1.3","typescript":"5.9.3","vite":"^8.1.4","vue":"3.5.39","vue-tsc":"^3.3.7"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typings":"./es/index.d.ts","browser":"./dist/index.js","_id":"@composy/router-vue@0.0.1","_nodeVersion":"23.11.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-CfsM3CvIzn37MTk/W0ZYoAAPFBpTf2eR1egWXVPXdFXRKKQkm2FRI6RaRPBoPGjLAYPxX+7oTmJK1gvWUAhRGg==","shasum":"be9a2793644ad340821b9175e00392ffa0fdb946","tarball":"https://registry.npmjs.org/@composy/router-vue/-/router-vue-0.0.1.tgz","fileCount":221,"unpackedSize":3192570,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAy10bAR1wWVzatuDxxDgwnwTdIvtpMDRTDbv+HGBiQaAiA0XG0aco/6FlVo3H9sUkM9vrh7cvTQLlxhC76piDWsPQ=="}]},"_npmUser":{"name":"swimly","email":"979741120@qq.com"},"directories":{},"maintainers":[{"name":"swimly","email":"979741120@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/router-vue_0.0.1_1786948889663_0.4705007245842172"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T06:41:28.032Z","0.0.1":"2026-08-17T06:41:29.841Z","modified":"2026-08-17T06:41:30.332Z"},"maintainers":[{"name":"swimly","email":"979741120@qq.com"}],"description":"Vue 3 router library with enhanced features, built on vue-router","homepage":"https://gitee.com/ldesign-v1/ldesign","keywords":["vue","vue3","router","navigation","spa","typescript","vue-router"],"repository":{"type":"git","url":"https://gitee.com/ldesign-v1/ldesign.git","directory":"packages/router/packages/vue"},"author":{"name":"ldesign"},"bugs":{"url":"https://gitee.com/ldesign-v1/ldesign/issues"},"license":"MIT","readme":"# @composy/router-vue\n\n> 面向 Vue 3 的路由适配层。基于 `vue-router`，并复用 `@composy/router-core` 的路径工具、类型和部分核心能力。\n\n## 包定位\n\n- **核心能力来源**：`@composy/router-core`\n- **Vue 运行时来源**：`vue` + `vue-router`\n- **本包负责**：\n  - `createRouter()` / `useRouter()` / `useRoute()`\n  - 路由组件\n  - composables\n  - 配置注入\n  - devtools 辅助\n  - 可选的 LDesign engine plugin\n\n## 安装\n\n```bash\npnpm add @composy/router-vue vue vue-router\n```\n\n如果你还要接入 LDesign Engine：\n\n```bash\npnpm add @composy/engine-core\n```\n\n## 快速开始\n\n```typescript\nimport { createRouter, createWebHistory } from '@composy/router-vue'\nimport { createApp } from 'vue'\n\nconst router = createRouter({\n  history: createWebHistory(),\n  routes: [\n    { path: '/', component: () => import('./views/Home.vue') },\n    { path: '/about', component: () => import('./views/About.vue') },\n  ],\n})\n\nconst app = createApp(App)\napp.use(router)\napp.mount('#app')\n```\n\n## 主要能力\n\n### Router API\n\n- `createRouter()`\n- `useRouter()`\n- `useRoute()`\n- `createWebHistory()`\n- `createWebHashHistory()`\n- `createMemoryHistory()`\n\n### 组件\n\n- `RouterView`\n- `RouterLink`\n- `RouterTabs`\n- `RouterBreadcrumb`\n- `RouterModal`\n- `RouterSkeleton`\n- `RouterGuard`\n\n### Composables\n\n- 基础：`useParams()`、`useQuery()`、`useHash()`、`useMeta()`\n- 匹配与路径：`useRouteMatch()`、`useFullPath()`、`useRouteName()`\n- 类型增强：`useTypedParams()`、`useTypedQuery()`、`useTypedMeta()`\n- 导航守卫：`onBeforeRouteLeave()`、`onBeforeRouteUpdate()`\n- 增强能力：`useNavigationState()`、`useBreadcrumb()`、`useRouteTitle()`、`useRouteWatcher()`、`useRouteScroll()`、`useRouteDebounce()`\n\n### 配置与插件\n\n- `provideRouterConfig()`\n- `injectRouterConfig()`\n- `installRouterConfig()`\n- `createRouterPlugin()`\n- `createRouterEnginePlugin()`\n- `createDefaultRouterEnginePlugin()`\n\n### 适配与开发辅助\n\n- `vueAdapter`\n- `VueComponentLoader`\n- `VueViewRenderer`\n- `VueSSRRenderer`\n- `VueErrorBoundary`\n- `setupDevtools()`\n\n## 依赖边界\n\n- **运行时必需**：`@composy/router-core`、`vue-router`\n- **peer 依赖**：`vue`、`vue-router`\n- **可选扩展依赖**：`@composy/engine-core`，仅在使用 engine plugin 时需要\n\n## 构建与校验\n\n在 `packages/router/packages/vue` 目录下：\n\n```bash\npnpm build\npnpm type-check\npnpm test\n```\n\n## 相关文档\n\n- [`../core/README.md`](../core/README.md)\n- [`../vanilla/README.md`](../vanilla/README.md)\n\n## License\n\nMIT © LDesign Team\n","readmeFilename":"README.md","_rev":"1-922e96cb1c21ff08e5e546dc7cf1b484"}