Модули 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://, не может использовать импорт/экспорт.