Импорт данных в NextJS

В NextJS мы можем выполнять импорт и экспорт произвольных файлов. Это вы уже должны уметь, если вы работали с с ES6 модулями. Логично, что это будет работать и в NextJS, но новичкам это не всегда очевидно. Поэтому давайте поговорим про импорты.

Для примера пусть у нас есть некоторая страница. На этой странице мы хотим вывести некоторые данные. Пусть, к примеру, у нас есть некоторый массив с данными. Пусть эти данные настолько большие, что нам кажется удобным вынести их в отдельный файл.

Название этого файла может быть любым. Пусть будет data.js. В этом файле мы разместим массив с данными. А в файле page.jsx у нас будет страница, которая будет обрабатываться самим NextJS и отдаваться в браузер.

To есть у нас будет следующая файловая структура:

Разместим в нашем файле data.js некоторый массив с данными:

src/app/test/data.jsexport default [
  1, 2, 3, 4, 5,
];

Сделаем страницу page.jsx:

src/app/test/page.jsxexport default function Test() {
  return <h1>Test</h1>;
}

Подключим к нашей странице массив с данными:

src/app/test/page.jsximport data from './data.js';

export default function Test() {
  return <h1>Test</h1>;
}

Выведем эти данные в цикле:

src/app/test/page.jsximport data from './data.js';

export default function Test() {
  let list = data.map(function(item) {
    return <li>{item}</li>
  });
  
  return <>
    <h1>Test</h1>
    <ul>
      {list}
    </ul>
  </>;
}
Задание 1

Пусть дан следующий массив постов:

posts.jslet posts = [
  'post1',
  'post2',
  'post3',
  'post4',
  'post5',
];

Выведите эти продукты в виде списка ul.

Задание 2

Пусть дан следующий массив с продуктами:

prods.jslet prods = [
  {
    id: 1,
    name: 'prod1',
    cost: 100,
  },
  {
    id: 2,
    name: 'prod2',
    cost: 200,
  },
  {
    id: 3,
    name: 'prod3',
    cost: 300,
  },
];

Выведите эти продукты в виде HTML таблицы.