Liquid-basis voor ontwikkelaars van elders
Als je eerder templates hebt geschreven, kost Liquid je een middag. Wat langer duurt is accepteren wat het je niet laat doen, omdat die limieten opzettelijk zijn en ze vormgeven hoe Shopify-thema's worden gebouwd.
Dit is de oriëntatie die we geven aan ontwikkelaars die vanuit een andere stack bij een Shopify-project komen.
Het mentale model#
Liquid is een renderingtaal, geen applicatietaal. Het heeft objecten die door Shopify worden aangereikt, filters om ze te formatteren en tags voor control flow. Er is geen databasetoegang, geen willekeurige berekening van betekenis en geen manier om buiten de objecten te reiken die je kreeg. Als je iets nodig hebt dat het object niet bevat, is het antwoord een metafield, een app of een andere pagina.
Elk uur besteed aan proberen Liquid als een algemene programmeertaal te laten gedragen is een uur dat aan het datamodel had moeten worden besteed.
Wat je constant zult gebruiken#
| Ding | Waarvoor het is |
|---|---|
| Objecten | product, collection, cart, customer, shop — de data van de pagina |
| Filters | Formattering: money, date, image_url, escape |
| Tags | Control flow: if, for, assign, render |
| Secties en blokken | Door merchant bewerkbare structuur in de thema-editor |
| Metafields | Je eigen gestructureerde data gekoppeld aan Shopify-objecten |
Veelvoorkomende valkuilen#
- Loops over grote collecties renderen traag; pagineer in plaats van filteren in Liquid.
- Alles wat je per request berekent wordt op elke request berekend — cache-vriendelijke output is belangrijk.
- render krijgt een geïsoleerde scope; include is verouderd en gedraagt zich anders.
- Geld wordt opgeslagen in centen; gebruik de money-filters in plaats van handmatig rekenen.
- Klantspecifieke content voorkomt naïeve full-page caching, wat zowel een prestatie- als een correctheidsbeslissing is.
Waar logica in plaats daarvan te plaatsen#
Data-vormgeving hoort in metafields en metaobjects, eenmaal gedefinieerd en goedkoop gelezen. Gedrag hoort in een app of in de browser. Liquid zou vooral moeten lezen en formatteren. Thema's die die splitsing volgen blijven snel en begrijpelijk.
Veelgestelde vragen
Is Liquid moeilijk te leren?
Nee — een competente ontwikkelaar is productief in een dag. Leren wat Shopify je niet laat doen duurt langer.
Kan ik data opvragen in Liquid?
Alleen wat de pagina-objectgrafiek je geeft, plus metafields. Er is geen willekeurige querying.
Moet logica in Liquid of JavaScript leven?
Presentatielogica in Liquid, interactie in JavaScript, bedrijfsregels in een app of in je datamodel.
shopify liquidliquid templatingshopify thema ontwikkelingliquid basisshopify metafields