Rumah > hujung hadapan web > tutorial js > Menggunakan partial dan penghias secara inline dengan hendal 4.0

Menggunakan partial dan penghias secara inline dengan hendal 4.0

Christopher Nolan
Lepaskan: 2025-02-18 09:12:11
asal
300 orang telah melayarinya

Using Inline Partials and Decorators with Handlebars 4.0

hendal, perpustakaan templating JavaScript yang popular untuk penyampaian sisi pelanggan dan pelayan, memanjangkan spesifikasi misai untuk pengurusan templat yang lebih baik. Bagi pendatang baru, meneroka templat JavaScript dengan hendal melalui kursus Pluralsight adalah disyorkan. Handlebars 4.0 (September 2015) memperkenalkan peningkatan yang signifikan: partial dan penghias inline. Artikel ini meneroka kedua -duanya, memperincikan sintaks dan penggunaan optimum mereka.

Konsep Utama:

    Handlebars 4.0 Ciri -ciri Utama: Separa Inline (Templat yang Boleh Dipusu) dan Penghias (mengubah keadaan rendering).
  • separa dalam talian: Ditakrifkan dalam templat, menghapuskan keperluan untuk pendaftaran JavaScript. Mereka blok-scoped, mengehadkan penggunaan ke skop semasa dan bersarang. Ideal untuk coretan HTML yang kecil dan boleh diguna semula.
  • Penghias: Ubah suai fungsi program hendal, mempengaruhi runtime sebelum pelaksanaan. Berguna untuk mengubah data konteks atau pembantu.
  • penghias meningkatkan modulariti kod, kelanjutan, dan kesesuaian, terutamanya memberi manfaat kepada tugas seperti pemformatan mata wang.
  • kedua-dua ciri menyelaraskan pembangunan front-end, menghasilkan kod yang lebih bersih, lebih teratur, dan berpotensi lebih cekap.

partial inline

Separa, konsep templat biasa, mempromosikan penggunaan semula kod dengan memisahkan templat yang boleh diguna semula ke dalam fail individu. Walau bagaimanapun, sebahagian tradisional hendal mempunyai batasan: skop global, yang memerlukan pendaftaran JavaScript (walaupun sering dikendalikan oleh pra-kompiles), dan pemisahan dari konteks penggunaannya. Ini sering menyekat penggunaannya hanya untuk blok kod yang boleh diguna semula terbesar.

separa dalam talian menangani isu -isu ini. Ditakrifkan dalam templat menggunakan sintaks hendal, mereka tidak memerlukan pendaftaran JavaScript. Sifat scoped mereka mengurung penggunaannya kepada skop semasa dan kanak-kanak. Pilih separa dalam talian untuk segmen HTML yang kecil dan boleh diguna semula yang terlalu kecil untuk fail berasingan atau digunakan secara eksklusif dalam satu templat tunggal.

Menggunakan partial inline

mengisytiharkan separa sebaris dengan membungkus kod yang boleh diguna semula dengan

. Kemudian, gunakannya dalam templat melalui {{#* inline "partialName"}} ... {{/inline}}. {{> partialName}}

Contoh:

bukannya mengulangi <p> {{firstName}} {{lastName}} <code><li>{{firstName}} {{lastName}}</li>

, gunakan separa inline:
{{#* inline "fullName"}}
    {{firstName}} {{lastName}}
{{/inline}}

{{#each clients}}
    <li>{{> fullName}}</li>
{{/each}}
Salin selepas log masuk
Salin selepas log masuk

Membandingkan separa dan separa inline

Pertimbangkan templat dengan berulang {{firstName}} {{lastName}}:

  • separa tradisional: memerlukan fail JavaScript yang berasingan untuk mendaftar Handlebars.registerPartial('fullName', '{{firstName}} {{lastName}}'); dan kemudian penggunaan dalam templat sebagai {{> fullName}}. Ini memisahkan definisi separa, menjadikan pemahaman templat penuh lebih mencabar.

  • separa dalam talian: Pendekatan yang bersih dan serba lengkap:

{{#* inline "fullName"}}
    {{firstName}} {{lastName}}
{{/inline}}

{{#each clients}}
    <li>{{> fullName}}</li>
{{/each}}
Salin selepas log masuk
Salin selepas log masuk

penghias

Penghias mengubahsuai fungsi program hendal, mempengaruhi proses rendering. Mereka menyediakan metadata untuk meningkatkan fungsi templat, bertindak sebagai sahabat yang lebih mendasar untuk fungsi penolong.

Penyusunan hendal melibatkan: 1. Mendapatkan templat; 2. Menyusunnya; 3. Memberi output. Penghias campur tangan dalam langkah kompilasi (Handlebars.compile), yang mempengaruhi fungsi yang disusun scoped blok. Mereka mengawal pelaksanaan sebelum membuat, membenarkan pengubahsuaian kepada data konteks atau pembantu.

Menggunakan penghias

penghias didaftarkan menggunakan Handlebars.registerDecorator(). Fungsi ini menerima (program, props, container, context).

  • program: fungsi hendal yang disusun. Ubah suai hujah, nilai pulangan, atau konteks.
  • props: Properties yang ditetapkan di sini mempengaruhi fungsi program, walaupun diganti. Berguna untuk metadata.
  • container: bekas runtime hendal (partial, pembantu, konteks). Boleh diubah.
  • : context Konteks induk, termasuk argumen dan data penghias.
Penghias mesti mengembalikan fungsi (atau nilai palsu) untuk menjadikan templat yang diubah suai.

Contoh: Pemformatan mata wang

Sebelum hendal 4.0, pemformatan mata wang sering bergantung kepada pembantu. Penghias menawarkan penyelesaian yang lebih elegan.

Penghias boleh mendaftarkan penolong pemformatan mata wang secara dinamik berdasarkan konteks:

{{#* inline "fullName"}}{{firstName}} {{lastName}}{{/inline}}
<h1>Hello {{> fullName}}</h1>
Salin selepas log masuk
Kemudian, dalam templat:

Handlebars.registerDecorator('activateFormatter', function(program, props, container, context) {
    // ... logic to select currency formatter based on context ...
    container.helpers = { formatMoneyHelper: selectedFormatter };
});
Salin selepas log masuk
Pendekatan ini lebih modular, extensible, dan boleh diuji daripada menggunakan pembantu sahaja.

Kesimpulan

separa dan penghias inline dengan ketara meningkatkan hendal, meningkatkan organisasi kod, kebolehgunaan, dan kebolehlihatan. Mereka adalah alat yang berharga untuk membina lebih banyak aplikasi front-end yang boleh dipelihara dan cekap.

Atas ialah kandungan terperinci Menggunakan partial dan penghias secara inline dengan hendal 4.0. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan