@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
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useRoute } from '@budarin/use-route';
|
|
2
|
+
import { Link } from '../components/Link';
|
|
3
|
+
|
|
4
|
+
export function UserProfile() {
|
|
5
|
+
const { pathname, params, matched } = useRoute('/users/:id');
|
|
6
|
+
|
|
7
|
+
return (
|
|
8
|
+
<div className="demo-content">
|
|
9
|
+
<h1>Профиль пользователя</h1>
|
|
10
|
+
<p className="demo-lead">
|
|
11
|
+
Хук вызван с шаблоном <code>/users/:id</code>. Из текущего адреса он достал параметр{' '}
|
|
12
|
+
<code>id</code> — ниже видно его значение. Кнопки ведут к списку или к другому
|
|
13
|
+
пользователю.
|
|
14
|
+
</p>
|
|
15
|
+
<p>
|
|
16
|
+
Адрес: <code>{pathname}</code> → параметр <code>id</code> ={' '}
|
|
17
|
+
<strong>{params.id ?? '—'}</strong>
|
|
18
|
+
{matched !== undefined && (
|
|
19
|
+
<>
|
|
20
|
+
{' '}
|
|
21
|
+
(шаблон совпал: <strong>{matched ? 'да' : 'нет'}</strong>)
|
|
22
|
+
</>
|
|
23
|
+
)}
|
|
24
|
+
</p>
|
|
25
|
+
<h2>Действия</h2>
|
|
26
|
+
<div className="demo-buttons">
|
|
27
|
+
<Link to="/users">Вернуться к списку пользователей</Link>
|
|
28
|
+
<Link to="/users/2">Перейти к пользователю №2</Link>
|
|
29
|
+
<Link to="/users/3">Перейти к пользователю №3</Link>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Link } from '../components/Link';
|
|
2
|
+
|
|
3
|
+
export function Users() {
|
|
4
|
+
const ids = ['1', '2', '3'];
|
|
5
|
+
|
|
6
|
+
return (
|
|
7
|
+
<div className="demo-content">
|
|
8
|
+
<h1>Пользователи</h1>
|
|
9
|
+
<p className="demo-lead">
|
|
10
|
+
Здесь показано, как из URL достаётся параметр: путь вида <code>/users/123</code>{' '}
|
|
11
|
+
даёт в хуке <code>params.id = "123"</code>. Нажмите на любого пользователя —
|
|
12
|
+
откроется его «профиль», а в адресе будет видно номер.
|
|
13
|
+
</p>
|
|
14
|
+
<h2>Выберите пользователя</h2>
|
|
15
|
+
<ul className="demo-list">
|
|
16
|
+
{ids.map((id) => (
|
|
17
|
+
<li key={id}>
|
|
18
|
+
<Link to={`/users/${id}`}>Открыть профиль пользователя №{id}</Link>
|
|
19
|
+
</li>
|
|
20
|
+
))}
|
|
21
|
+
</ul>
|
|
22
|
+
</div>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["./src/app.tsx","./src/main.tsx","./src/components/link.tsx","./src/pages/basedemo.tsx","./src/pages/custommatcher.tsx","./src/pages/history.tsx","./src/pages/home.tsx","./src/pages/posts.tsx","./src/pages/pushreplace.tsx","./src/pages/userprofile.tsx","./src/pages/users.tsx"],"version":"5.9.3"}
|