Konsep Utama:
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}}
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}}
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.
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>
Handlebars.registerDecorator('activateFormatter', function(program, props, container, context) { // ... logic to select currency formatter based on context ... container.helpers = { formatMoneyHelper: selectedFormatter }; });
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!