Co to jest Mustache.js?

Mustache.js to lekka biblioteka szablonów w JavaScript, która stosuje tzw. „logic-less template syntax”. Oznacza to, że szablony nie zawierają logiki programistycznej. Dzięki temu są bardziej przejrzyste i łatwiejsze w utrzymaniu. Mustache.js umożliwia oddzielenie kodu HTML od danych używanych do renderowania strony, co pozwala na łatwiejsze zarządzanie kodem i jego ponowne wykorzystanie.

Gdzie można używać Mustache.js

Mustache.js dobrze sprawdzi się do generowania dynamicznego HTML-a w aplikacjach jednostronicowych (SPA), współpracując z popularnymi frameworkami takimi jak Angular, React czy Vue.js. Po stronie serwera, w połączeniu z Node.js, Mustache.js efektywnie renderuje szablony przed ich wysłaniem do przeglądarki, co poprawia wydajność aplikacji. Biblioteka ta jest również użyteczna w projektach, które wymagają współdzielenia szablonów między serwerem a klientem — ułatwia to zarządzanie kodem. Mustache.js znajduje zastosowanie również poza webem, np. w generowaniu dokumentów czy e-maili.

Szablony Mustache.js

Szablony Mustache.js są prostymi, ale potężnymi narzędziami do generowania kodu HTML lub innych typów dokumentów na podstawie danych. Używają specjalnych tagów, które są zastępowane odpowiednimi wartościami w momencie renderowania. Poniżej przedstawiamy podstawowe komponenty szablonów w Mustache.js oraz przykłady ich zastosowania.

Tagi Mustache.js

Tagi Mustache są umieszczane wewnątrz podwójnych nawiasów klamrowych {{}}. Oto najczęściej używane tagi:

  • {{variable}} – Tag ten zostanie zastąpiony wartością zmiennej variable przekazanej do szablonu.
  • {{#list}} … {{/list}} – Sekcja, która jest renderowana wielokrotnie w zależności od liczby elementów w liście list.
  • {{^variable}} … {{/variable}} – Sekcja, która jest renderowana tylko wtedy, gdy zmienna variable jest pusta lub fałszywa.
  • {{! comment }} – Umożliwia dodanie komentarza w szablonie, który nie będzie renderowany.

Przykład szablonu

Rozważmy prosty szablon, który generuje listę zadań do wykonania (to-do list):

<h1>Lista zadań</h1>
<ul>
  {{#tasks}}
    <li>{{name}} - {{status}}</li>
  {{/tasks}}
</ul>

W powyższym szablonie, tasks to tablica obiektów, z których każdy zawiera name i status. Szablon renderuje element <li> dla każdego zadania w liście.

Wprowadzanie danych

Dane są przekazywane do szablonu w formacie JSON, co ułatwia ich manipulację i integrację z innymi systemami. Oto przykład danych dla szablonu listy zadań:

{
  "tasks": [
    {"name": "Zakupy", "status": "Zakończone"},
    {"name": "Nauka Mustache.js", "status": "W trakcie"}
  ]
}

W momencie renderowania, Mustache.js zamienia tagi w szablonie na odpowiednie wartości z przekazanych danych, generując ostateczny kod HTML.

Zalety i możliwości Mustache.js

Główną zaletą Mustache.js jest wyraźne oddzielenie logiki od prezentacji. Dzięki temu kod jest bardziej zrozumiały i czytelny, a zespół pracuje efektywniej. Mustache.js zaprojektowano z myślą o szybkim renderingu szablonów, co sprawdza się zarówno w przeglądarkach internetowych, jak i w aplikacjach serwerowych opartych na Node.js. To łatwe i intuicyjne narzędzie dla początkujących deweloperów, a jednocześnie nie ogranicza zaawansowanych możliwości. Mustache.js jest cennym narzędziem do zarządzania szablonami w projektach webowych.

FAQ – Frequently Asked Questions

razem stwórzmy coś ciekawego