Agregacja i aliasy
Gdy pracujemy z modułami w JavaScript, często zdarza się, że musimy importować wiele zmiennych lub funkcji z różnych modułów. Aby ułatwić sobie pracę i zwiększyć czytelność kodu, możemy używać aliasów. Aliasy to alternatywne nazwy, które możemy przypisać importowanym elementom. Spójrzmy na przykład:
import { bardzoDlugaNazwaFunkcji as skroconaNazwa } from './modul';
skroconaNazwa();
Tutaj bardzoDlugaNazwaFunkcji
jest oryginalną nazwą funkcji z modułu modul
, a skroconaNazwa
to alias, który ułatwia nam jej wywołanie. Użycie aliasów jest szczególnie przydatne, gdy importujemy funkcje lub zmienne o skomplikowanych lub długich nazwach.
Agregacja eksportów
Kolejnym ważnym aspektem pracy z modułami jest agregacja eksportów. Pozwala to na bardziej zorganizowaną strukturę projektu, gdzie możemy eksportować wiele funkcji lub zmiennych z jednego pliku. To szczególnie przydatne, gdy chcemy stworzyć bibliotekę funkcji. Oto przykład:
// plik funkcje.js
export const funkcja1 = () => {
/*...*/
};
export const funkcja2 = () => {
/*...*/
};
// plik index.js
export * from './funkcje';
W pliku index.js
, używamy export *
do eksportowania wszystkich funkcji z pliku funkcje.js
. Użytkownik naszego modułu może teraz importować te funkcje bezpośrednio z index.js
.
Dynamiczne importy
Dynamiczne importy to zaawansowana funkcjonalność, która pozwala na ładowanie modułów na żądanie. Jest to szczególnie przydatne w dużych aplikacjach, gdzie chcemy ograniczyć początkowy czas ładowania bardzo dużych modułów. Używamy w tym celu składni import()
:
const nazwaModulu = './modul';
import(nazwaModulu)
.then((modul) => {
modul.funkcja();
})
.catch((error) => {
console.error('Wystąpił problem z załadowaniem modułu', error);
});
Dynamiczne importy są obietnicami (Promise
), co oznacza, że możemy używać then
i catch
do obsługi załadowanego modułu lub ewentualnych błędów.