Γενικά Δεδομένα Στοιχείων στο 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',
  },
];

Δημιουργήστε δύο στοιχεία. Ας προβάλλει το πρώτο τη λίστα των προϊόντων, και το δεύτερο - την αναλυτική περιγραφή του προϊόντος.