Општи податоци за компонентите во NextJS

Постојат ситуации кога неколку компоненти треба да имаат пристап до истите податоци. Како пример, нека имаме некоја низа со корисници. Нека на еден рут сакаме да го прикажеме списокот на корисници, а на друг рут со динамички параметар - опис на конкретен корисник по неговиот id.

Ајде да го имплементираме опишаното. Да ја направиме следнава фајлова структура:

Да направиме посебен фајл со податоци за корисниците:

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

Да направиме компонента за приказ на списокот на корисници:

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>;
}

Да направиме компонента за приказ на одреден корисник по неговиот 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

Дадена е следнава низа:

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

Направете две компоненти. Нека првата покажува список на производи, а втората - детален опис на производот.