@budarin/use-route 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/demo/dist/assets/index-CehTkyXl.css +1 -0
- package/demo/dist/assets/index-wDy-y7oj.js +49 -0
- package/demo/dist/index.html +13 -0
- package/demo/index.html +12 -0
- package/demo/node_modules/.bin/browserslist +21 -0
- package/demo/node_modules/.bin/tsc +21 -0
- package/demo/node_modules/.bin/tsserver +21 -0
- package/demo/node_modules/.bin/vite +21 -0
- package/demo/node_modules/.vite/deps/@budarin_use-route.js +372 -0
- package/demo/node_modules/.vite/deps/@budarin_use-route.js.map +7 -0
- package/demo/node_modules/.vite/deps/_metadata.json +52 -0
- package/demo/node_modules/.vite/deps/chunk-4BQM3FN6.js +278 -0
- package/demo/node_modules/.vite/deps/chunk-4BQM3FN6.js.map +7 -0
- package/demo/node_modules/.vite/deps/chunk-DBBEQ5LR.js +1028 -0
- package/demo/node_modules/.vite/deps/chunk-DBBEQ5LR.js.map +7 -0
- package/demo/node_modules/.vite/deps/package.json +3 -0
- package/demo/node_modules/.vite/deps/react-dom.js +5 -0
- package/demo/node_modules/.vite/deps/react-dom.js.map +7 -0
- package/demo/node_modules/.vite/deps/react-dom_client.js +20215 -0
- package/demo/node_modules/.vite/deps/react-dom_client.js.map +7 -0
- package/demo/node_modules/.vite/deps/react.js +4 -0
- package/demo/node_modules/.vite/deps/react.js.map +7 -0
- package/demo/node_modules/.vite/deps/react_jsx-dev-runtime.js +276 -0
- package/demo/node_modules/.vite/deps/react_jsx-dev-runtime.js.map +7 -0
- package/demo/node_modules/.vite/deps/react_jsx-runtime.js +287 -0
- package/demo/node_modules/.vite/deps/react_jsx-runtime.js.map +7 -0
- package/demo/package.json +23 -0
- package/demo/src/App.tsx +139 -0
- package/demo/src/components/Link.tsx +24 -0
- package/demo/src/index.css +160 -0
- package/demo/src/main.tsx +10 -0
- package/demo/src/pages/BaseDemo.tsx +39 -0
- package/demo/src/pages/CustomMatcher.tsx +45 -0
- package/demo/src/pages/History.tsx +36 -0
- package/demo/src/pages/Home.tsx +38 -0
- package/demo/src/pages/Posts.tsx +40 -0
- package/demo/src/pages/PushReplace.tsx +43 -0
- package/demo/src/pages/UserProfile.tsx +33 -0
- package/demo/src/pages/Users.tsx +24 -0
- package/demo/tsconfig.tsbuildinfo +1 -0
- package/demo/vite.config.ts +6 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,6 +21,11 @@
|
|
|
21
21
|
[](https://bundlephobia.com/result?p=@budarin/use-route)
|
|
22
22
|
[](https://github.com/budarin/use-route)
|
|
23
23
|
|
|
24
|
+
**Живое демо:** запуск в браузере без установки; исходники в папке [demo/](https://github.com/budarin/use-route/tree/master/demo). Чтобы открыть в новой вкладке: Ctrl+клик (Cmd+клик на Mac).
|
|
25
|
+
|
|
26
|
+
- [Open in StackBlitz](https://stackblitz.com/github/budarin/use-route/tree/master/demo)
|
|
27
|
+
- [Open in CodeSandbox](https://githubbox.com/budarin/use-route/tree/master/demo) — если StackBlitz недоступен (например, в РФ без VPN)
|
|
28
|
+
|
|
24
29
|
## ✨ Особенности
|
|
25
30
|
|
|
26
31
|
- ✅ **Динамическое дерево** — маршрутизация в рантайме по pathname/params, без статичного route tree
|
|
@@ -443,12 +448,15 @@ function DashboardSection() {
|
|
|
443
448
|
<div>
|
|
444
449
|
{/* При URL /dashboard/reports pathname === '/reports' */}
|
|
445
450
|
<p>Раздел Dashboard. Путь: {pathname}</p>
|
|
451
|
+
|
|
446
452
|
<button type="button" onClick={() => navigate('/reports')}>
|
|
447
453
|
Отчёты → /dashboard/reports
|
|
448
454
|
</button>
|
|
455
|
+
|
|
449
456
|
<button type="button" onClick={() => navigate('/settings')}>
|
|
450
457
|
Настройки → /dashboard/settings
|
|
451
458
|
</button>
|
|
459
|
+
|
|
452
460
|
{/* Переход вне раздела: свой base в вызове */}
|
|
453
461
|
<button type="button" onClick={() => navigate('/', { base: '' })}>
|
|
454
462
|
На главную
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,sans-serif;line-height:1.5;color:#1a1a1a;background:#f5f5f5}#root{min-height:100vh}a{color:#06c;text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer;padding:.4em .8em;border:1px solid #ccc;border-radius:4px;background:#fff}button:hover:not(:disabled){background:#f0f0f0}button:disabled{opacity:.6;cursor:not-allowed}.demo-nav{background:#fff;padding:.75rem 1rem;border-bottom:1px solid #e0e0e0;display:flex;flex-direction:column;gap:.5rem}.demo-nav-url{font-size:.85rem;color:#555}.demo-nav-url code{background:#f0f0f0;padding:.2em .4em;border-radius:4px;word-break:break-all}.demo-nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}.demo-nav a,.demo-nav .nav-link{padding:.25em .5em;border-radius:4px}.demo-nav a.active,.demo-nav .nav-link.active{background:#e8f0fe;color:#1967d2}.demo-content{max-width:640px;margin:0 auto;padding:1.5rem 1rem;background:#fff;min-height:calc(100vh - 52px);border-radius:0 0 8px 8px;box-shadow:0 1px 3px #00000014}.demo-content h1{margin-top:0;font-size:1.5rem}.demo-content .demo-lead{color:#444;margin-bottom:1rem;padding:.75rem;background:#f8f9fa;border-radius:6px;border-left:3px solid #0066cc}.demo-content h2{font-size:1.1rem;margin:1rem 0 .5rem}.demo-content code{background:#f0f0f0;padding:.1em .3em;border-radius:3px;font-size:.9em}.demo-content pre{background:#f5f5f5;padding:.75rem;border-radius:4px;overflow-x:auto;font-size:.85em}.demo-list{list-style:none;padding:0;margin:0}.demo-list li{margin:.5rem 0}.demo-list a{display:inline-block;padding:.35em .5em;border-radius:4px;background:#f0f0f0}.demo-list a:hover{background:#e0e0e0;text-decoration:none}.demo-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}
|