Noções básicas de Liquid para programadores vindos de outros lados
Se já escreveu modelos antes, Liquid levará uma tarde. O que demora mais é aceitar o que não o deixará fazer, porque esses limites são deliberados e moldam como os temas Shopify são construídos.
Esta é a orientação que damos a programadores que se juntam a um projeto Shopify de qualquer outra stack.
O modelo mental#
Liquid é uma linguagem de renderização, não uma linguagem de aplicação. Tem objetos entregues pela Shopify, filtros para os formatar e tags para fluxo de controlo. Não há acesso a base de dados, nenhuma computação arbitrária de consequência e nenhuma forma de alcançar fora dos objetos que lhe foram dados. Se precisa de algo que o objeto não contém, a resposta é um metafield, uma aplicação ou uma página diferente.
Cada hora gasta a tentar fazer Liquid comportar-se como uma linguagem de propósito geral é uma hora que deveria ter sido gasta no modelo de dados.
O que usará constantemente#
| Coisa | Para que serve |
|---|---|
| Objetos | product, collection, cart, customer, shop — os dados da página |
| Filtros | Formatação: money, date, image_url, escape |
| Tags | Fluxo de controlo: if, for, assign, render |
| Secções e blocos | Estrutura editável pelo comerciante no editor de temas |
| Metafields | Os seus próprios dados estruturados anexados a objetos Shopify |
Armadilhas comuns#
- Ciclos sobre grandes coleções renderizam lentamente; pagine em vez de filtrar em Liquid.
- Qualquer coisa que compute por pedido é computada em cada pedido — saída amigável à cache importa.
- render recebe um âmbito isolado; include está obsoleto e comporta-se de forma diferente.
- Dinheiro é armazenado em cêntimos; use os filtros money em vez de fazer aritmética manualmente.
- Conteúdo específico do cliente impede cache ingénuo de página completa, que é uma decisão de desempenho bem como de correção.
Onde colocar lógica em vez disso#
Modelação de dados pertence a metafields e metaobjects, definidos uma vez e lidos economicamente. Comportamento pertence a uma aplicação ou ao navegador. Liquid deve maioritariamente ler e formatar. Temas que seguem essa divisão mantêm-se rápidos e compreensíveis.
Perguntas frequentes
Liquid é difícil de aprender?
Não — um programador competente é produtivo num dia. Aprender o que a Shopify não o deixará fazer demora mais.
Posso consultar dados em Liquid?
Apenas o que o grafo de objetos da página lhe dá, mais metafields. Não há consulta arbitrária.
A lógica deve viver em Liquid ou JavaScript?
Lógica de apresentação em Liquid, interação em JavaScript, regras de negócio numa aplicação ou no seu modelo de dados.
shopify liquidliquid templatingdesenvolvimento tema shopifynocoes basicas liquidshopify metafields