Moduly JavaScriptu umožňují rozdělit kód do samostatných souborů.
To usnadňuje udržování základny kódu.
Moduly se importují z externích souborů pomocí příkazu import
.
Moduly také spoléhají na type="module"
ve značce <script>.
<script type="module">
import message from "./message.js";
</script>
Zkuste to sami →
<!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>
Moduly s funkcemi nebo proměnnými lze uložit do libovolného externího souboru.
Existují dva typy exportů: Pojmenované exporty a Výchozí exporty.
Vytvořme soubor s názvem person.js
a naplňte ji věcmi, které chceme exportovat.
Pojmenované exporty můžete vytvořit dvěma způsoby. In-line jednotlivě, nebo všechny najednou dole.
person.js
export const name = "Jesse";
export const age = 40;
person.js
const name = "Jesse";
const age = 40;
export {name, age};
Vytvořme další soubor s názvem message.js
a použijte jej pro demonstraci výchozího exportu.
V souboru můžete mít pouze jeden výchozí export.
message.js
const message = () => {
const name = "Jesse";
const age = 40;
return name + ' is ' + age + 'years old.';
};
export default message;
Moduly můžete importovat do souboru dvěma způsoby, podle toho, zda jsou pojmenovány exporty nebo výchozí exporty.
Pojmenované exporty jsou konstruovány pomocí složených závorek. Výchozí exporty nejsou.
Importujte pojmenované exporty ze souboru person.js:
import { name, age } from "./person.js";
Zkuste to sami →
<!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>
Importujte výchozí export ze souboru message.js:
import message from "./message.js";
Zkuste to sami →
<!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>
Moduly pracují pouze s protokolem HTTP(s).
Webová stránka otevřená přes protokol file:// nemůže používat import/export.