В този урок ще научите за модулите в JavaScript с помощта на примери.
Тъй като нашата програма се разраства, тя може да съдържа много редове код. Вместо да поставяте всичко в един файл, можете да използвате модули за разделяне на кодове в отделни файлове според тяхната функционалност. Това прави нашия код организиран и по-лесен за поддръжка.
Модулът е файл, който съдържа код за изпълнение на определена задача. Модулът може да съдържа променливи, функции, класове и т.н. Да видим пример,
Да предположим, че файл с име greet.js съдържа следния код:
// exporting a function export function greetPerson(name) ( return `Hello $(name)`; )
Сега, за да използвате кода на greet.js в друг файл, можете да използвате следния код:
// importing greetPerson from greet.js file import ( greetPerson ) from './greet.js'; // using greetPerson() defined in greet.js let displayName = greetPerson('Jack'); console.log(displayName); // Hello Jack
Тук,
- Най-
greetPerson()
функцията в greet.js се изнася с помощта наexport
ключовата думаexport function greetPerson(name) (… )
- След това импортирахме
greetPerson()
в друг файл, използвайкиimport
ключовата дума. За да импортирате функции, обекти и т.н., трябва да ги увиете( )
.import ( greet ) from '/.greet.js';
Забележка : От модула можете да осъществите достъп само до експортирани функции, обекти и т.н. Трябва да използвате export
ключовата дума за конкретната функция, обекти и т.н., за да ги импортирате и да ги използвате в други файлове.
Експортиране на множество обекти
Също така е възможно да се експортират множество обекти от модул. Например,
Във файла module.js
// exporting the variable export const name = 'JavaScript Program'; // exporting the function export function sum(x, y) ( return x + y; )
В основния файл,
import ( name, sum ) from './module.js'; console.log(name); let add = sum(4, 9); console.log(add); // 13
Тук,
import ( name, sum ) from './module.js';
Това импортира както променливата на името, така и sum()
функцията от файла module.js .
Преименуване на вноса и износа
Ако обектите (променливи, функции и т.н.), които искате да импортирате, вече присъстват във вашия основен файл, програмата може да не се държи както искате. В този случай програмата взема стойност от основния файл вместо от импортирания файл.
За да избегнете конфликти при именуване, можете да преименувате тези функции, обекти и т.н. по време на експортирането или по време на импортирането.
1. Преименувайте в модула (файл за експортиране)
// renaming import inside module.js export ( function1 as newName1, function2 as newName2 ); // when you want to use the module // import in the main file import ( newName1, newName2 ) from './module.js';
Тук, докато експортирате функцията от файл module.js , на функцията се дават нови имена (тук, newName1 & newName2). Следователно, когато импортирате тази функция, новото име се използва за препратка към тази функция.
2. Преименувайте във файла за импортиране
// inside module.js export ( function1, function2 ); // when you want to use the module // import in the required file with different name import ( function1 as newName1, function2 as newName2 ) from './module.js';
Тук, докато импортирате функцията, новите имена (тук, newName1 & newName2) се използват за името на функцията. Сега използвате новите имена за препратка към тези функции.
Експортиране по подразбиране
Можете също да извършите експортиране по подразбиране на модула. Например,
Във файла greet.js :
// default export export default function greet(name) ( return `Hello $(name)`; ) export const age = 23;
След това при импортиране можете да използвате:
import random_name from './greet.js';
Докато извършвате експортиране по подразбиране,
- random_name се импортира от
greet.js
. Тъй като,random_name
не е вgreet.js
, експортирането по подразбиране (greet()
в този случай) се експортира катоrandom_name
. - Можете директно да използвате експортирането по подразбиране, без да ограждате къдрави скоби
()
.
Забележка : Файлът може да съдържа множество експорти. Можете обаче да имате само един експорт по подразбиране във файл.
Модули Винаги използвайте строг режим
По подразбиране модулите са в строг режим. Например,
// in greet.js function greet() ( // strict by default ) export greet();
Полза от използването на модул
- Кодовата база е по-лесна за поддръжка, тъй като различен код с различни функционалности се намира в различни файлове.
- Прави кода за многократна употреба. Можете да дефинирате модул и да го използвате многократно според вашите нужди.
Използването на импорт / експорт може да не се поддържа в някои браузъри. За да научите повече, посетете Поддръжка за импорт / експорт на JavaScript.