Delte komponentdata i NextJS

Det oppstår situasjoner der flere komponenter må ha tilgang til de samme dataene. La oss som eksempel si at vi har en rekke med brukere. La oss på en rute vise en liste over brukerne, og på en annen rute med en dynamisk parameter - beskrivelsen av en spesifikk bruker basert på deres id.

La oss implementere det som er beskrevet. Vi lager følgende filstruktur:

La oss lage en separat fil med brukerdata:

/app/users/users.jsexport default users = [
  {
    id: 1,
    name: 'name1',
    surn: 'surn1',
  },
  {
    id: 2,
    name: 'name2',
    surn: 'surn2',
  },
  {
    id: 3,
    name: 'name3',
    surn: 'surn3',
  },
];

La oss lage en komponent for å vise brukerlisten:

app/users/list/page.jsximport users from '../users.js';

export default function List() {
  let list = users.map(user => {
    return <li>
      {user.name}
    </li>;
  });
  
  return <ul>
    {list}
  </ul>;
}

La oss lage en komponent for å vise en spesifikk bruker basert på deres 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>;
}
Задание 1

Følgende array er gitt:

/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',
  },
];

Lag to komponenter. La den første vise en liste over produktene, og den andre - en detaljert beskrivelse av produktet.