{"_id":"@bm-helper/uniapp-router","_rev":"5-ff486fb54f744f5879f705b153e652b0","name":"@bm-helper/uniapp-router","dist-tags":{"latest":"1.0.3"},"versions":{"0.1.0":{"name":"@bm-helper/uniapp-router","version":"0.1.0","keywords":["uniapp","router","vue3","typescript","miniprogram","h5","app"],"author":{"name":"yinzhaoyue","email":"david_yinzhaoyue@163.com"},"license":"MIT","_id":"@bm-helper/uniapp-router@0.1.0","maintainers":[{"name":"bmkj","email":"bomeng_technology@163.com"}],"homepage":"https://gitee.com/yinzhaoyue/bm-lerna","dist":{"shasum":"66c88b575b756c37a34eab89ae523d117f379f36","tarball":"https://registry.npmjs.org/@bm-helper/uniapp-router/-/uniapp-router-0.1.0.tgz","fileCount":7,"integrity":"sha512-SE+TeUHWNf97f4Pj15r1AnLKEdiIUHdDdkkLmvhmCkKyHiPnnOsmlK5drLqgzhr2taqT50HmjahyYe2XVm4UrA==","signatures":[{"sig":"MEQCIB0kTI21agroyb/OFjjpoBS+dPzqWrHrawEGguVBoNhiAiBYYgw8C6zwOWOFIsw9uO30WdCyFIXkSYNAL/7Y0Sahyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140103},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"f356acb4e0cff94521c72e575263610533d90454","scripts":{"dev":"unbuild --stub","test":"vitest run","build":"unbuild","release":"changeset publish","docs:api":"typedoc","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build","version-packages":"changeset version"},"_npmUser":{"name":"bmkj","email":"bomeng_technology@163.com"},"repository":{"url":"https://gitee.com/yinzhaoyue/bm-lerna.git","type":"git","directory":"packages/uniapp-router-next"},"_npmVersion":"11.6.1","description":"uni-app 路由管理工具，支持 Vue3、H5、小程序和 App，提供动态路由、导航守卫、过渡动画等功能","directories":{},"_nodeVersion":"24.10.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","vitest":"^1.6.0","typedoc":"^0.28.0","unbuild":"^2.0.0","vitepress":"^1.3.0","typescript":"^5.3.3","vue-router":"^4.3.0","@types/node":"^20.11.0","@changesets/cli":"^2.27.1","typedoc-plugin-markdown":"^4.4.0"},"peerDependencies":{"vue":"^3.2.45","vue-router":"^4.0.0"},"peerDependenciesMeta":{"vue-router":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/uniapp-router_0.1.0_1776307304788_0.16817232136665372","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@bm-helper/uniapp-router","version":"1.0.0","keywords":["uniapp","router","vue3","typescript","miniprogram","h5","app"],"author":{"name":"yinzhaoyue","email":"david_yinzhaoyue@163.com"},"license":"MIT","_id":"@bm-helper/uniapp-router@1.0.0","maintainers":[{"name":"bmkj","email":"bomeng_technology@163.com"}],"homepage":"","dist":{"shasum":"89f60023c61d0e238cfbd08162ea69d96b001414","tarball":"https://registry.npmjs.org/@bm-helper/uniapp-router/-/uniapp-router-1.0.0.tgz","fileCount":7,"integrity":"sha512-xjcchmo8bW4ZKtnvV1VzBD45T6Xx09dfq3lOPYgQYAxMbWlFOdR7raqAGjKPPzBh0iuSX9zn9R7h7jvffPJZtg==","signatures":[{"sig":"MEUCIQCe8qWktct+GTf2twXHGKyHl6oUa6spAHpM/RRGMfAHWAIgOWiYz8dInOT8nga4ZG6fmfvo2JkkCCzTgWY7bLWLlLo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142161},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"37765e051cac4ffd759c4a04393ff4e9ab7df1e3","scripts":{"dev":"unbuild --stub","test":"vitest run","build":"unbuild","release":"changeset publish","docs:api":"typedoc","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","build:watch":"node scripts/build-watch.mjs","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build","version-packages":"changeset version"},"_npmUser":{"name":"bmkj","email":"bomeng_technology@163.com"},"repository":{"url":"","type":"git","directory":"packages/uniapp-router-next"},"_npmVersion":"11.11.0","description":"uni-app 路由管理工具，支持 Vue3、H5、小程序和 App，提供动态路由、导航守卫、过渡动画等功能","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","vitest":"^1.6.0","typedoc":"^0.28.0","unbuild":"^2.0.0","vitepress":"^1.3.0","typescript":"^5.3.3","vue-router":"^4.3.0","@types/node":"^20.11.0","@changesets/cli":"^2.27.1","typedoc-plugin-markdown":"^4.4.0"},"peerDependencies":{"vue":"^3.2.45","vue-router":"^4.0.0"},"peerDependenciesMeta":{"vue-router":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/uniapp-router_1.0.0_1776354433975_0.7272790872851356","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bm-helper/uniapp-router","version":"1.0.1","keywords":["uniapp","router","vue3","typescript","miniprogram","h5","app"],"author":{"name":"yinzhaoyue","email":"david_yinzhaoyue@163.com"},"license":"MIT","_id":"@bm-helper/uniapp-router@1.0.1","maintainers":[{"name":"bmkj","email":"bomeng_technology@163.com"}],"homepage":"","dist":{"shasum":"005dbe692596fb4c8f5ff425ee91341d1ec1238b","tarball":"https://registry.npmjs.org/@bm-helper/uniapp-router/-/uniapp-router-1.0.1.tgz","fileCount":7,"integrity":"sha512-CbckSgcgjUn6duppPtQmnW10nacToiM2ez12aqjlPSkhsJv+sGP10i/FhT3L8tcLhviA0HB+cHYI1Te51A10YA==","signatures":[{"sig":"MEYCIQC0lqEw8H51BLNb743ghOB6bGOcMCGHSh6zdPGpCXADpAIhANxCLFz3AYogD5/Yuk7fWq0OCekKP1iiOwhAznual/uX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142945},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"75a011b44a81ca62c23c4df65eca38ce24456d27","scripts":{"dev":"unbuild --stub","test":"vitest run","build":"unbuild","release":"changeset publish","docs:api":"typedoc","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","build:watch":"node scripts/build-watch.mjs","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build","version-packages":"changeset version"},"_npmUser":{"name":"bmkj","email":"bomeng_technology@163.com"},"repository":{"url":"","type":"git","directory":"packages/uniapp-router-next"},"_npmVersion":"11.11.0","description":"uni-app 路由管理工具，支持 Vue3、H5、小程序和 App，提供动态路由、导航守卫、过渡动画等功能","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","vitest":"^1.6.0","typedoc":"^0.28.0","unbuild":"^2.0.0","vitepress":"^1.3.0","typescript":"^5.3.3","vue-router":"^4.3.0","@types/node":"^20.11.0","@changesets/cli":"^2.27.1","typedoc-plugin-markdown":"^4.4.0"},"peerDependencies":{"vue":"^3.2.45","vue-router":"^4.0.0"},"peerDependenciesMeta":{"vue-router":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/uniapp-router_1.0.1_1776431862487_0.22239792002634684","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bm-helper/uniapp-router","version":"1.0.2","keywords":["uniapp","router","vue3","typescript","miniprogram","h5","app"],"author":{"name":"yinzhaoyue","email":"david_yinzhaoyue@163.com"},"license":"MIT","_id":"@bm-helper/uniapp-router@1.0.2","maintainers":[{"name":"bmkj","email":"bomeng_technology@163.com"}],"homepage":"","dist":{"shasum":"e1055b003a43cfb94a45c6c4e00c7a6984a18fd0","tarball":"https://registry.npmjs.org/@bm-helper/uniapp-router/-/uniapp-router-1.0.2.tgz","fileCount":7,"integrity":"sha512-NbabifqzujBRiuiOE5LQcXomUr4yBA96DioDm67EWTQsK1JyL004SncqdtjTjOiLH9WLO2Rwzj7BmtvdHSrf/Q==","signatures":[{"sig":"MEUCIQDuCJvUm0UAX027dxz/M00iQkiPUB4LzYFkNxuHzFlLkwIgLPLZM4vb5k656WDbaTsU72ArZ9TyP8CRDqiCmsBHYUY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142885},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"34bebcfaa636026208bfc469c64b6f2b347c5b62","scripts":{"dev":"unbuild --stub","test":"vitest run","build":"unbuild","release":"changeset publish","docs:api":"typedoc","docs:dev":"vitepress dev docs","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","build:watch":"node scripts/build-watch.mjs","docs:preview":"vitepress preview docs","prepublishOnly":"npm run build","version-packages":"changeset version"},"_npmUser":{"name":"bmkj","email":"bomeng_technology@163.com"},"repository":{"url":"","type":"git","directory":"packages/ uniapp-router"},"_npmVersion":"11.11.0","description":"uni-app 路由管理工具，支持 Vue3、H5、小程序和 App，提供动态路由、导航守卫、过渡动画等功能","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.0","vitest":"^1.6.0","typedoc":"^0.28.0","unbuild":"^2.0.0","vitepress":"^1.3.0","typescript":"^5.3.3","vue-router":"^4.3.0","@types/node":"^20.11.0","@changesets/cli":"^2.27.1","typedoc-plugin-markdown":"^4.4.0"},"peerDependencies":{"vue":"^3.2.45","vue-router":"^4.0.0"},"peerDependenciesMeta":{"vue-router":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/uniapp-router_1.0.2_1776432955151_0.21788443130287738","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@bm-helper/uniapp-router","version":"1.0.3","description":"uni-app 路由管理工具，支持 Vue3、H5、小程序和 App，提供动态路由、导航守卫、过渡动画等功能","keywords":["uniapp","router","vue3","typescript","miniprogram","h5","app"],"homepage":"","repository":{"type":"git","url":"","directory":"packages/ uniapp-router"},"license":"MIT","author":{"name":"yinzhaoyue","email":"david_yinzhaoyue@163.com"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"unbuild","build:watch":"node scripts/build-watch.mjs","dev":"unbuild --stub","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","docs:api":"typedoc","test":"vitest run","typecheck":"tsc --noEmit","release":"changeset publish","version-packages":"changeset version","prepublishOnly":"npm run build"},"peerDependencies":{"vue":"^3.2.45","vue-router":"^4.0.0"},"peerDependenciesMeta":{"vue-router":{"optional":true}},"devDependencies":{"@changesets/cli":"^2.27.1","@types/node":"^20.11.0","typescript":"^5.3.3","unbuild":"^2.0.0","vitepress":"^1.3.0","typedoc":"^0.28.0","typedoc-plugin-markdown":"^4.4.0","vitest":"^1.6.0","vue":"^3.4.0","vue-router":"^4.3.0"},"gitHead":"6e7d6be497a6c8d381ff3e3c881bfab02fadb322","_id":"@bm-helper/uniapp-router@1.0.3","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-K1l9IOrz3wvKQGb1UrDWNnb+mVOE9ADJOlVFLrK4oTxTP4r1y0MptV93LVP1EJL7xxr3tCaQ2zYCptUKe8tNtg==","shasum":"4e36768b9797f43171635a8d095c220a84f1deb0","tarball":"https://registry.npmjs.org/@bm-helper/uniapp-router/-/uniapp-router-1.0.3.tgz","fileCount":7,"unpackedSize":158609,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDDcOetU3QuX60rCsGeDSPI52l01SY3F2NLgfACFUQNzwIgISjECZdAo7Ny3/WWDq3Smoc//W/02khdAw84+DKwvzE="}]},"_npmUser":{"name":"bmkj","email":"bomeng_technology@163.com"},"directories":{},"maintainers":[{"name":"bmkj","email":"bomeng_technology@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/uniapp-router_1.0.3_1776500885921_0.5636563321462733"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-16T02:41:44.645Z","modified":"2026-04-18T08:28:06.743Z","0.1.0":"2026-04-16T02:41:44.902Z","1.0.0":"2026-04-16T15:47:14.116Z","1.0.1":"2026-04-17T13:17:42.632Z","1.0.2":"2026-04-17T13:35:55.273Z","1.0.3":"2026-04-18T08:28:06.072Z"},"author":{"name":"yinzhaoyue","email":"david_yinzhaoyue@163.com"},"license":"MIT","keywords":["uniapp","router","vue3","typescript","miniprogram","h5","app"],"repository":{"type":"git","url":"","directory":"packages/ uniapp-router"},"description":"uni-app 路由管理工具，支持 Vue3、H5、小程序和 App，提供动态路由、导航守卫、过渡动画等功能","maintainers":[{"name":"bmkj","email":"bomeng_technology@163.com"}],"readme":"# @bm-helper/uniapp-router\n\nuni-app 路由管理工具，支持 Vue3、H5、各小程序和 App。\n\n[![npm version](https://img.shields.io/npm/v/@bm-helper/uniapp-router.svg)](https://www.npmjs.com/package/@bm-helper/uniapp-router)\n[![license](https://img.shields.io/npm/l/@bm-helper/uniapp-router.svg)](https://www.npmjs.com/package/@bm-helper/uniapp-router)\n\n## 特性\n\n- **统一 API**：类 Vue Router 风格，覆盖 uni-app 所有跳转场景\n- **导航守卫**：全局 `beforeEach` / `afterEach`，支持异步操作、重定向\n- **动态路由**：`addRoute` / `removeRoute` / `hasRoute` / `getRoutes`\n- **路径模式匹配**：支持 `:id`、`:id?` 和 `*` 路径匹配\n- **页面过渡动画**：基于 uni-app 原生过渡系统，H5 端通过 CSS 模拟一致效果\n- **多平台兼容**：H5、微信/支付宝/百度/抖音/QQ/快手/京东/飞书小程序、App\n- **Composition API**：`useRouter()` / `useRoute()`\n- **TypeScript 优先**：完整类型定义\n\n## 安装\n\n```bash\nnpm install @bm-helper/uniapp-router\n```\n\n## 快速开始\n\n```ts\n// main.ts\nimport { createSSRApp } from 'vue'\nimport App from './App.vue'\nimport { createRouter } from '@bm-helper/uniapp-router'\n\nconst router = createRouter({\n  platform: 'h5', // 'h5' | 'app' | 'mp-weixin' | ...\n  routes: [\n    { path: '/pages/index/index', name: 'index', aliasPath: '/' },\n    { path: '/pages/detail/detail', name: 'detail' },\n    { path: '/pages/user/:id?', name: 'user-detail' },\n    { path: '*', name: 'not-found', redirect: '/pages/404/index' },\n  ],\n  transition: {\n    animationType: 'slide-in-right',\n    animationDuration: 300,\n  },\n})\n\nrouter.beforeEach((to, from, next) => {\n  next()\n})\n\nexport function createApp() {\n  const app = createSSRApp(App)\n  app.use(router)\n  return { app, router }\n}\n```\n\n```vue\n<!-- 在页面中使用 -->\n<script setup>\nimport { useRouter, useRoute } from '@bm-helper/uniapp-router'\n\nconst router = useRouter()\nconst route = useRoute()\n\nrouter.navigateTo({ name: 'detail', query: { id: 1 } })\n</script>\n```\n\n## 导航方式\n\n```ts\nrouter.navigateTo({ name: 'detail', query: { id: 1 } })\nrouter.redirectTo({ path: '/pages/login/login' })\nrouter.navigateTo({ name: 'user-detail', params: { id: 42 } })\nrouter.reLaunch('/pages/index/index')\nrouter.switchTab('/pages/tab/tab')\nrouter.navigateBack({ delta: 1 })\n```\n\n## 动态路由\n\n```ts\n// 添加路由（返回移除函数）\nconst remove = router.addRoute({ path: '/pages/admin/admin', name: 'admin' })\n\n// 移除路由\nrouter.removeRoute('admin')\n\n// 检查是否存在\nrouter.hasRoute('admin') // false\n\n// 获取所有路由\nrouter.getRoutes()\n```\n\n## 动态参数与通配符\n\n```ts\nconst router = createRouter({\n  platform: 'h5',\n  routes: [\n    { path: '/pages/user/:id', name: 'user-detail' },\n    { path: '/pages/profile/:tab?', name: 'profile-tab' },\n    { path: '/pages/*', name: 'section-fallback', redirect: '/pages/404/index' },\n    { path: '*', name: 'not-found', redirect: '/pages/404/index' },\n  ],\n})\n\nrouter.resolve('/pages/user/42')?.params // { id: '42' }\nrouter.resolve({ name: 'profile-tab' })?.path // /pages/profile\nrouter.resolve({ name: 'profile-tab', params: { tab: 'settings' } })?.path // /pages/profile/settings\n```\n\n- 匹配优先级：精确路径 > 动态参数 > 通配符\n- `resolve()` 命中动态路径后会返回 `params`\n- `record` 会指向命中的路由记录，可用于 404/兜底判断\n\n## 过渡动画\n\n```ts\n// 全局配置\ncreateRouter({\n  transition: { animationType: 'slide-in-right', animationDuration: 300 },\n})\n\n// 路由级别（meta.transition）\n{ path: '/pages/modal', meta: { transition: { animationType: 'slide-in-bottom' } } }\n\n// 单次跳转\nrouter.navigateTo({ name: 'detail', animationType: 'zoom-fade-in' })\n```\n\n支持动画类型：`slide-in-right` / `slide-in-left` / `slide-in-top` / `slide-in-bottom` / `pop-in` / `fade-in` / `zoom-in` / `zoom-fade-in` / `none`\n","readmeFilename":"README.md"}