Dasar-dasar Liquid untuk developer dari tempat lain
Jika Anda pernah menulis template sebelumnya, Liquid akan memakan waktu satu sore. Yang memakan waktu lebih lama adalah menerima apa yang tidak akan dibiarkan dilakukan, karena batasan tersebut disengaja dan membentuk bagaimana tema Shopify dibangun.
Ini adalah orientasi yang kami berikan kepada developer yang bergabung dengan proyek Shopify dari stack lain mana pun.
Model mental#
Liquid adalah bahasa rendering, bukan bahasa aplikasi. Ia memiliki objek yang diserahkan kepadanya oleh Shopify, filter untuk memformatnya, dan tag untuk alur kontrol. Tidak ada akses database, tidak ada komputasi sewenang-wenang yang berarti, dan tidak ada cara untuk menjangkau di luar objek yang diberikan kepada Anda. Jika Anda memerlukan sesuatu yang tidak terkandung dalam objek, jawabannya adalah metafield, aplikasi, atau halaman yang berbeda.
Setiap jam yang dihabiskan untuk mencoba membuat Liquid berperilaku seperti bahasa tujuan umum adalah jam yang seharusnya dihabiskan pada model data.
Apa yang akan Anda gunakan terus-menerus#
| Hal | Untuk apa |
|---|---|
| Objects | product, collection, cart, customer, shop — data halaman |
| Filters | Pemformatan: money, date, image_url, escape |
| Tags | Alur kontrol: if, for, assign, render |
| Sections dan blocks | Struktur yang dapat diedit merchant di editor tema |
| Metafields | Data terstruktur Anda sendiri yang dilampirkan ke objek Shopify |
Jebakan umum#
- Loop pada koleksi besar dirender dengan lambat; gunakan paginasi daripada memfilter di Liquid.
- Apa pun yang Anda hitung per permintaan dihitung pada setiap permintaan — output yang ramah cache penting.
- render menerima scope terisolasi; include sudah usang dan berperilaku berbeda.
- Uang disimpan dalam sen; gunakan filter money daripada melakukan aritmatika manual.
- Konten khusus pelanggan mencegah caching halaman penuh naif, yang merupakan keputusan kinerja serta kebenaran.
Di mana menempatkan logika sebagai gantinya#
Pembentukan data termasuk dalam metafields dan metaobjects, didefinisikan sekali dan dibaca dengan murah. Perilaku termasuk dalam aplikasi atau di browser. Liquid sebagian besar harus membaca dan memformat. Tema yang mengikuti pemisahan itu tetap cepat dan dapat dipahami.
Pertanyaan yang sering diajukan
Apakah Liquid sulit dipelajari?
Tidak — developer yang kompeten produktif dalam sehari. Mempelajari apa yang tidak akan dibiarkan Shopify lakukan memakan waktu lebih lama.
Bisakah saya query data di Liquid?
Hanya apa yang diberikan grafik objek halaman kepada Anda, ditambah metafields. Tidak ada query sewenang-wenang.
Haruskah logika berada di Liquid atau JavaScript?
Logika presentasi di Liquid, interaksi di JavaScript, aturan bisnis di aplikasi atau di model data Anda.
shopify liquidliquid templatingpengembangan tema shopifydasar liquidshopify metafields