Komponent
Komponent to samodzielny, wyodrębniony i przeznaczony do wielokrotnego użytku fragment aplikacji, który łączy w jednej hermetycznej całości warstwę widoku, logikę zachowania oraz własny stan. Komponenty udostępniają na zewnątrz jasno zdefiniowany interfejs — zestaw danych wejściowych oraz zdarzeń, jakie generują — dzięki czemu można je zestawiać ze sobą niczym klocki i budować z nich rozbudowane interfejsy bez powielania kodu.
Jak działa komponent?
Idea komponentu opiera się na hermetyzacji: każdy element ukrywa swoją wewnętrzną implementację, a komunikuje się z otoczeniem wyłącznie przez ustalony kontrakt. W nowoczesnych frameworkach frontendowych, takich jak React, Vue.js czy Angular, wygląda to tak:
- właściwości (props) — dane przekazywane do komponentu z zewnątrz, konfigurujące jego wygląd i działanie;
- stan (state) — dane wewnętrzne, którymi komponent zarządza samodzielnie;
- zdarzenia — komunikaty wysyłane na zewnątrz, gdy użytkownik wejdzie w interakcję;
- renderowanie — funkcja opisująca, jak stan i właściwości przekładają się na fragment interfejsu.
Zmiana stanu lub właściwości powoduje ponowne wyrenderowanie tylko tego komponentu, którego dane faktycznie się zmieniły, co przekłada się na wydajność aplikacji.
Zastosowanie w praktyce
Podejście komponentowe jest dziś standardem w tworzeniu interfejsów. Zespół projektuje bibliotekę współdzielonych komponentów — przycisków, pól formularzy, modali, tabel — i wykorzystuje je konsekwentnie na wielu podstronach oraz w wielu projektach. Efektem jest spójny wygląd (design system), krótszy czas developmentu i łatwiejsze testowanie, bo każdy komponent można sprawdzić w izolacji.
Pojęcie komponentu nie ogranicza się do frontendu. Mianem tym określa się też niezależne moduły backendu, mikrousługi czy elementy architektury systemów rozproszonych — wszędzie tam, gdzie chodzi o wymienny, luźno powiązany fragment większej całości. Przy wdrażaniu aplikacji zbudowanej z komponentów warto zadbać o środowisko z dobrym cache'owaniem statycznych zasobów, co skraca czas ładowania interfejsu.
Powiązane pojęcia
Najczęstsze pytania
Czym różni się komponent od modułu?
Komponent to zwykle pojedynczy, wizualny lub funkcjonalny element interfejsu (np. przycisk, formularz, karta), który da się osadzić w wielu miejscach. Moduł to większa jednostka organizacyjna grupująca powiązane komponenty, usługi i logikę w jeden logiczny fragment aplikacji. W praktyce moduł składa się z wielu komponentów.
