Модули JavaScript


Оглавление

    Показать оглавление


Модули

Модули JavaScript позволяют разбивать код на отдельные файлы.

Это упрощает поддержку базы кода.

Модули импортируются из внешних файлов с помощью оператора import.

Модули также используют type="module" в теге <script>.

Пример

<script type="module">
import message from "./message.js";
</script>

Попробуйте сами →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Modules</h1>

<p id="demo"></p>

<script type="module">
import message from "./message.js";

document.getElementById("demo").innerHTML = message();

</script>

</body>
</html>

Экспорт

Модули с функциями или переменными могут храниться в любом внешнем файле.

Существует два типа экспорта: Именованный экспорт и Экспорт по умолчанию.


Именованный экспорт

Давайте создадим файл с именем person.js и заполните его тем, что мы хотим экспортировать.

Вы можете создать именованный экспорт двумя способами. В линию по отдельности или все сразу внизу.

В линии индивидуально:

person.js

export const name = "Jesse";
export const age = 40;

Все сразу внизу:

person.js

const name = "Jesse";
const age = 40;

export {name, age};

Экспорт по умолчанию

Давайте создадим еще один файл с именем message.js и используйте его для демонстрации экспорта по умолчанию.

В файле может быть только один экспорт по умолчанию.

Пример

message.js

const message = () => {
  const name = "Jesse";
  const age = 40;
  return name + ' is ' + age + 'years old.';
};

export default message;


Импортировать

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

Именованный экспорт создается с использованием фигурных скобок. Экспорт по умолчанию — нет.

Импорт из именованного экспорта

Импортируйте именованные экспорты из файла person.js:

import { name, age } from "./person.js";

Попробуйте сами →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Modules</h1>

<p id="demo"></p>

<script type="module">
import { name, age } from "./person.js";

let text = "My name is " + name + ", I am " + age + ".";

document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

Импорт из экспорта по умолчанию

Импортируйте экспорт по умолчанию из файла message.js:

import message from "./message.js";

Попробуйте сами →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Modules</h1>

<p id="demo"></p>

<script type="module">
import message from "./message.js";

document.getElementById("demo").innerHTML = message();

</script>

</body>
</html>

Примечание

Модули работают только с протоколом HTTP(s).

Веб-страница, открытая по протоколу file://, не может использовать импорт/экспорт.