NextJS да динамик хаволалар генерацияси
Фарз қилайлик, бизда фойдаланувчилар маълумотлари билан файл мавжуд:
/app/users/users.jsexport default users = [
{
id: 1,
name: 'name1',
surn: 'surn1',
},
{
id: 2,
name: 'name2',
surn: 'surn2',
},
{
id: 3,
name: 'name3',
surn: 'surn3',
},
];
Келик икки компонент ясаймиз. Биринчи компонент фойдаланувчилар рўйхатини уларнинг батафсил тавсифига хаволалар билан кўрсатади. Иккинчи компонент эса ушбу батафсил тавсифни чиқаради.
URL /users/list манзилида
барча фойдаланувчилар рўйхати
кўрсатилсин,
URL /users/show/:id манзилида эса -
ўзининг айдиси бўйича аник фойдаланувчи.
Бунинг учун куйидаги файл тузилимини ясаймиз:
- /app//users/users.js/list/page.jsx/show/[id]/page.jsx
Биринчи компонентни ясаймиз, унда
биз хаволаларни цайлав ичида динамик
генерация қиламиз, уларга ҳар бир фойдаланувчининг id
сини қўйиб:
app/users/list/page.jsximport users from '../users.js';
import Link from 'next/link';
export default function List() {
let list = users.map(user => {
return <li>
<Link href={`/users/show/${user.id}`}>
{user.name}
</Link>
</li>;
});
return <ul>
{list}
</ul>;
}
Унинг id си бўйича аник фойдаланувчини
чиқариш учун компонент ясаймиз:
app/users/show/[id]/page.jsximport users from '../../users.js';
export default function User({params}) {
let user = users[params.id];
return <div>
<span>{user.id}</span>
<span>{user.name}</span>
<span>{user.surn}</span>
</div>;
}
Куйидаги массив берилган:
/app/prods/prods.jslet prods = [
{
id: 1,
name: 'prod1',
cost: 100,
desc: 'desc1',
},
{
id: 2,
name: 'prod2',
cost: 200,
desc: 'desc2',
},
{
id: 3,
name: 'prod3',
cost: 300,
desc: 'desc3',
},
];
Икки компонент ясанг. Биринчиси махсулотлар рўйхатини махсулотнинг тулик тавсифига хаволалар кўринишида кўрсатсин. Иккинчи компонент эса махсулотнинг батафсил тавсифини кўрсатсин.
URL да мавжуд бўлмаган махсулотнинг
айдиси юборилса, экранга 404
хато чиқарилишини таъминланг.