Liquid-grunder för utvecklare som kommer från annat håll
Om du har skrivit mallar tidigare tar Liquid en eftermiddag. Vad som tar längre tid är att acceptera vad det inte låter dig göra, eftersom dessa begränsningar är avsiktliga och de formar hur Shopify-teman byggs.
Detta är den orientering vi ger utvecklare som ansluter sig till ett Shopify-projekt från vilken annan stack som helst.
Den mentala modellen#
Liquid är ett renderingsspråk, inte ett applikationsspråk. Det har objekt som överlämnas till det av Shopify, filter för att formatera dem och taggar för kontrollflöde. Det finns ingen databasåtkomst, ingen godtycklig beräkning av betydelse och inget sätt att nå utanför de objekt du fick. Om du behöver något som objektet inte innehåller är svaret ett metafält, en app eller en annan sida.
Varje timme som spenderas på att försöka få Liquid att bete sig som ett allmänt programmeringsspråk är en timme som borde ha spenderats på datamodellen.
Vad du kommer att använda konstant#
| Sak | Vad det är till för |
|---|---|
| Objekt | product, collection, cart, customer, shop — sidans data |
| Filter | Formatering: money, date, image_url, escape |
| Taggar | Kontrollflöde: if, for, assign, render |
| Sektioner och block | Handlarredigerbar struktur i temaredigeraren |
| Metafält | Din egen strukturerade data kopplad till Shopify-objekt |
Vanliga fällor#
- Loopar över stora samlingar renderas långsamt; paginera istället för att filtrera i Liquid.
- Allt du beräknar per förfrågan beräknas vid varje förfrågan — cachevänlig output spelar roll.
- render tar emot ett isolerat scope; include är föråldrat och beter sig annorlunda.
- Pengar lagras i ören; använd pengafiltren istället för att göra aritmetik för hand.
- Kundspecifikt innehåll förhindrar naiv helsidescachning, vilket är ett prestandabeslut såväl som ett korrekthetsbeslut.
Var du ska lägga logik istället#
Dataformning hör hemma i metafält och metaobjekt, definierade en gång och lästa billigt. Beteende hör hemma i en app eller i webbläsaren. Liquid bör mestadels läsa och formatera. Teman som följer den uppdelningen förblir snabba och begripliga.
Vanliga frågor
Är Liquid svårt att lära sig?
Nej — en kompetent utvecklare är produktiv på en dag. Att lära sig vad Shopify inte låter dig göra tar längre tid.
Kan jag fråga efter data i Liquid?
Bara vad sidobjektgrafen ger dig, plus metafält. Det finns ingen godtycklig frågning.
Ska logik ligga i Liquid eller JavaScript?
Presentationslogik i Liquid, interaktion i JavaScript, affärsregler i en app eller i din datamodell.
shopify liquidliquid templatingshopify temautvecklingliquid grundershopify metafält