Podstawy Liquid dla deweloperów przychodzących z innych miejsc
Jeśli pisałeś szablony wcześniej, Liquid zajmie popołudnie. To, co trwa dłużej, to zaakceptowanie tego, czego nie pozwoli ci zrobić, ponieważ te limity są celowe i kształtują sposób budowania motywów Shopify.
To jest orientacja, którą dajemy deweloperom dołączającym do projektu Shopify z dowolnego innego stosu.
Model mentalny#
Liquid to język renderowania, nie język aplikacyjny. Ma obiekty przekazane mu przez Shopify, filtry do ich formatowania i tagi do kontroli przepływu. Nie ma dostępu do bazy danych, żadnych arbitralnych obliczeń o znaczeniu i żadnego sposobu na wyjście poza obiekty, które ci dano. Jeśli potrzebujesz czegoś, czego obiekt nie zawiera, odpowiedzią jest metafield, aplikacja lub inna strona.
Każda godzina spędzona na próbie sprawienia, by Liquid zachowywał się jak język ogólnego przeznaczenia, to godzina, która powinna być spędzona na modelu danych.
Co będziesz używać stale#
| Rzecz | Do czego służy |
|---|---|
| Obiekty | product, collection, cart, customer, shop — dane strony |
| Filtry | Formatowanie: money, date, image_url, escape |
| Tagi | Kontrola przepływu: if, for, assign, render |
| Sekcje i bloki | Struktura edytowalna przez sprzedawcę w edytorze motywu |
| Metafieldy | Twoje własne ustrukturyzowane dane dołączone do obiektów Shopify |
Typowe pułapki#
- Pętle po dużych kolekcjach renderują się wolno; stronicuj zamiast filtrować w Liquid.
- Wszystko, co obliczasz na żądanie, jest obliczane przy każdym żądaniu — wyjście przyjazne dla cache ma znaczenie.
- render otrzymuje izolowany zakres; include jest przestarzałe i zachowuje się inaczej.
- Pieniądze są przechowywane w groszach; używaj filtrów money zamiast robić arytmetykę ręcznie.
- Treść specyficzna dla klienta zapobiega naiwnemu pełnemu cache strony, co jest decyzją dotyczącą wydajności, a także poprawności.
Gdzie zamiast tego umieścić logikę#
Kształtowanie danych należy do metafieldów i metaobiektów, zdefiniowanych raz i czytanych tanio. Zachowanie należy do aplikacji lub przeglądarki. Liquid powinien głównie czytać i formatować. Motywy, które podążają za tym podziałem, pozostają szybkie i zrozumiałe.
Najczęstsze pytania
Czy Liquid jest trudny do nauczenia?
Nie — kompetentny deweloper jest produktywny w ciągu dnia. Nauczenie się tego, czego Shopify nie pozwoli ci zrobić, trwa dłużej.
Czy mogę odpytywać dane w Liquid?
Tylko to, co daje ci graf obiektów strony, plus metafieldy. Nie ma arbitralnego odpytywania.
Czy logika powinna być w Liquid czy JavaScript?
Logika prezentacji w Liquid, interakcja w JavaScript, reguły biznesowe w aplikacji lub w modelu danych.
shopify liquidszablonowanie liquidrozwój motywu shopifypodstawy liquidmetafieldy shopify