Używam od EJS z Express i Node.JS od jakiegoś czasu i myślę, że rozumiem podstawy. Eksperymentowałem z funkcją EJS include
, która pozwoliła mi umieścić jeden szablon w innym. Użyłem również biblioteki o nazwie ejs-locals, która zapewnia łatwą obsługę prawdziwego układu. Jedną z rzeczy, które zauważyłem jest to, że ejs-locals definiuje również funkcje partial
i block
, które mogą być używane z EJS. Nie potrafię znaleźć dobrego wyjaśnienia na temat różnic między tymi trzema pojęciami. O ile mogę powiedzieć, są to ogólne pojęcia do szablonów, a nie tylko EJS. Wydaje mi się, że zarówno partial
, jak i block
wciąż są sposobami dołączania innych plików szablonów, ale czym się różnią?Jaka jest różnica między włączeniem, częściowym i/lub blokowym szablonem. EJS/ejs-locals
7
A
Odpowiedz
10
include
: Po prostu pobiera zawartość z podanego pliku i umieszcza ją tam, gdzie znajduje się instrukcja include
. Innymi słowy: plik ma dostęp do wszystkich zmiennych zdefiniowanych w pliku, z którego pochodzi.
partials
: Podobnie jak include
, z tą różnicą, że częściowe ma tylko dostęp do zmiennych, które przekazujesz do niego podczas renderowania.
blocks
: W swoim layoucie określasz lokalizacje, w których powinna znajdować się zawartość klocków. W pliku, który renderujesz, definiujesz zawartość tych bloków i definiujesz układ, na którym chcesz renderować treść bloku.