Понимание различий между import и require
Раньше функция require()
использовалась для импорта функций и кода во внешние файлы и модули. Хотя это
удобно, это создает проблему: некоторые файлы и модули довольно большие, и вам может понадобиться только
определенный код из этих внешних ресурсов. ES6 дает нам очень удобный инструмент, известный как import .
С его помощью мы можем выбрать, какие части модуля или файла загружать в данный файл, экономя время и память.
Рассмотрим следующий пример. Представьте, что math_array_functions
имеет около 20 функций, но нам нужна
только одна функция countItems
в текущем файле.
Старый метод require()
подгрузил бы все 20 функций, из которых уже необходимо было бы получить нужную
нам конкретную функцию. С помощью оператора import
можно импортировать только нужную функцию, например:
import { countItems } from "math_array_functions"
Существует несколько способов написания оператора import
, но это очень распространенный случай
использования.
Заметка
Пробел, окружающий функцию внутри фигурных скобок, является лучшей практикой - упрощает чтение инструкции
import
.
Заметка
В уроках этого раздела используются функции, отличные от браузера.
import
и require
, которые мы вводим на оставшихся уроках, не будут работать в браузере напрямую.
Однако мы можем использовать различные инструменты для создания кода из этого, чтобы он работал в браузере.
Заметка
В большинстве случаев путь к импортируемому файлу требует ./
в начале; В противном
случае зависимость будет пытаться подгрузиться не относительно текущего файла, а как зависимость из node_modules
.
Добавьте соответствующий оператор import
, который позволит текущему файлу использовать функцию capitalizeString
. Модуль, в котором объявлена эта функция, называется string_functions
и он находится в node_modules
.