Understand the Differences Between import and require

Раньше функция require() использовалась для импорта функций и кода во внешние файлы и модули. Хотя это удобно, это создает проблему: некоторые файлы и модули довольно большие, и вам может понадобиться только определенный код из этих внешних ресурсов. ES6 дает нам очень удобный инструмент, известный как import . С его помощью мы можем выбрать, какие части модуля или файла загружать в данный файл, экономя время и память. Рассмотрим следующий пример. Представьте, что math_array_functions имеет около 20 функций, но нам нужна только одна функция countItems в текущем файле. Старый метод require() подгрузил бы все 20 функций, из которых уже необходимо было бы получить нужную нам конкретную функцию. С помощью оператора import можно импортировать только нужную функцию, например:

 import { countItems } from "math_array_functions" 

Существует несколько способов написания оператора import , но это очень распространенный случай использования.

Заметка
Пробел, окружающий функцию внутри фигурных скобок, является лучшей практикой - упрощает чтение инструкции import .

Заметка
В уроках этого раздела используются функции, отличные от браузера. import и require, которые мы вводим на оставшихся уроках, не будут работать в браузере напрямую. Однако мы можем использовать различные инструменты для создания кода из этого, чтобы он работал в браузере.

<strong>Заметка</strong> <br> В большинстве случаев путь к импортируемому файлу требует <code>./</code> в начале; В противном
случае зависимость будет пытаться подгрузиться не относительно текущего файла, а как зависимость из <code>node_modules</code> .</p>

Добавьте соответствующий оператор import , который позволит текущему файлу использовать функцию capitalizeString. Модуль, в котором объявлена эта функция, называется string_functions и он находится в node_modules.