Takeaways Key
- Handlebars adalah enjin templating logik-kurang yang memanjangkan misai, menambah logik yang minimum melalui pembantu, menjadikannya sesuai untuk memisahkan struktur HTML dari logik perniagaan dan meningkatkan pemeliharaan aplikasi.
- Penciptaan templat dalam hendal melibatkan menggunakan pendakap keriting berganda `{{}}` untuk pembolehubah, yang boleh dikompilasi untuk meningkatkan prestasi dan mengurangkan pemprosesan sisi klien.
- hendal menyokong pembantu tersuai, membolehkan pemaju melaksanakan logik kompleks dalam templat, memberikan fleksibiliti melampaui pengikatan data mudah.
- Templat separa di hendal memudahkan kebolehgunaan kod di seluruh bahagian aplikasi, menyelaraskan proses pembangunan dan mengekalkan konsistensi.
- Precompilation of Templates Handlebars dapat meningkatkan prestasi aplikasi web dengan meminimumkan overhead kompilasi runtime di sisi klien.
Handlebar adalah enjin templating logik yang kurang menghasilkan halaman HTML anda secara dinamik. Ia adalah lanjutan kumis dengan beberapa ciri tambahan. Misai adalah logik sepenuhnya tetapi hendal menambah logik yang minimum terima kasih kepada penggunaan beberapa pembantu (seperti jika, dengan, kecuali, setiap satu) bahawa kita akan membincangkan lebih lanjut dalam artikel ini. Sebenarnya, kita boleh mengatakan bahawa hendal adalah superset kumis.
<span><span><span><script> src<span >="/path/to/handlebars.min.js"</script></span>></span><span><span></span>></span></span>Ia menyimpan halaman HTML anda bersih dan memisahkan templat logik-kurang dari logik perniagaan dalam fail JavaScript anda, dengan itu meningkatkan struktur aplikasi (dan juga penyelenggaraan dan skalabilitasnya)
ia memudahkan tugas mengemas kini data secara manual pada pandangan
- Ia digunakan dalam rangka kerja dan platform yang popular seperti Ember.js, Meteor.js, Derby.js dan Ghost
- Saya harap rekap pendek ini membantu anda dalam menentukan jika ia bernilai menggunakan hendal atau tidak.
-
bagaimana ia berfungsi?
- Fungsi ini kemudian dilaksanakan dengan meluluskan objek JSON sebagai hujah. Objek JSON ini dikenali sebagai konteks dan mengandungi nilai -nilai pembolehubah yang digunakan dalam templat
- Pada pelaksanaannya, fungsi mengembalikan HTML yang diperlukan setelah menggantikan pembolehubah templat dengan nilai yang sepadan
templat
Templat boleh ditulis dalam fail HTML atau secara berasingan. Dalam kes pertama, mereka muncul di dalam tag
dengan atribut jenis = "teks/x-handlebars-templat" dan ID. Pembolehubah ditulis dalam pendakap keriting berganda {{}} dan dikenali sebagai ungkapan. Berikut adalah contoh: Dengan markup ini, kita dapat melihat apa yang perlu kita lakukan. Dalam fail JavaScript anda, kami perlu mengambil templat dari dokumen HTML. Dalam contoh berikut, kami akan menggunakan ID templat untuk tujuan ini. Selepas templat telah diambil, kami dapat menyusunnya dengan menggunakan kaedah handlebars.Compile () yang mengembalikan fungsi. Fungsi ini kemudian dilaksanakan dengan lulus konteks sebagai hujah. Apabila pelaksanaan selesai, fungsi mengembalikan HTML yang dikehendaki dengan semua pembolehubah yang digantikan dengan nilai yang sepadan. Pada ketika ini kita boleh menyuntik HTML ke laman web kami.
<span><span><span><script> src<span >="/path/to/handlebars.min.js"</script></span>></span><span><span></span>></span></span>
Mengubah keterangan ini ke dalam hasil kod dalam coretan berikut:<span><span><span><script> id<span >="handlebars-demo"</script></span> type<span>="text/x-handlebars-template"</span>></span><span><span><div>My name is {{name}}. I am a {{occupation}}.</div></span></span><span><span></span>></span></span>
Sekarang sudah tiba masanya untuk menyelam sedikit lebih mendalam ke hendal. Kami akan melalui beberapa istilah penting dan sintaks yang membentuk teras hendal.
Ekspresi
kita sudah melihat ungkapan di bahagian di atas. Pembolehubah yang digunakan di dalam templat dikelilingi oleh pendakap keriting berganda {{}} dan dikenali sebagai ekspresi:
HTML Escaping
hendal boleh melepaskan nilai yang dikembalikan oleh ungkapan. Sebagai contoh watak
<span>// Retrieve the template data from the HTML (jQuery is used here).var template = $('#handlebars-demo').html(); </span><span>// Compile the template data into a functionvar templateScript = Handlebars.compile(template); </span><span>var context = { "name" : "Ritesh Kumar", "occupation" : "developer" }; </span><span>// html = 'My name is Ritesh Kumar. I am a developer.'var html = templateScript(context); </span><span>// Insert the HTML code into the page$(document.body).append(html);</span>
<span>My name is {{name}}</span>
demo langsung yang menunjukkan ciri ini boleh didapati dalam demo codepen ini
Komen
kita juga boleh menulis komen di dalam templat handlebars. Sintaks untuk komen hendal adalah {{! TypeyourcommentHere}}. Walau bagaimanapun, setiap komen yang mempunyai}} di dalamnya atau mana-mana simbol lain yang mempunyai makna khas dalam hendal hendaklah ditulis dalam bentuk {{!-typeyourcommenthere--}}. Komen Handlebars tidak dapat dilihat di HTML tetapi jika anda ingin menunjukkannya, anda boleh menggunakan komen HTML standard: .
Jika kita memohon semua konsep ini untuk templat yang kita gunakan, kita boleh membuat kod yang ditunjukkan di bawah:
<span><span><span><script> src<span >="/path/to/handlebars.min.js"</script></span>></span><span><span></span>></span></span>
Jika kita menggunakan templat sebelumnya dengan pembolehubah konteks yang dilaporkan di bawah:<span><span><span><script> id<span >="handlebars-demo"</script></span> type<span>="text/x-handlebars-template"</span>></span><span><span><div>My name is {{name}}. I am a {{occupation}}.</div></span></span><span><span></span>></span></span>
yang akan mengakibatkan penyemak imbas tidak menunjukkan kandungan di dalam komen HTML standard. Demo contoh ini boleh didapati di sini.
<span>// Retrieve the template data from the HTML (jQuery is used here).var template = $('#handlebars-demo').html(); </span><span>// Compile the template data into a functionvar templateScript = Handlebars.compile(template); </span><span>var context = { "name" : "Ritesh Kumar", "occupation" : "developer" }; </span><span>// html = 'My name is Ritesh Kumar. I am a developer.'var html = templateScript(context); </span><span>// Insert the HTML code into the page$(document.body).append(html);</span>
Blok<span>My name is {{name}}</span>
Untuk memahami lebih baik topik ini, kami akan menggunakan contoh di bawah di mana kami menggunakan setiap penolong (dibincangkan secara terperinci kemudian). Seperti yang anda harapkan, yang terakhir melangkah ke atas item array.
Dalam contoh ini, kami akan menggunakan template berikut:
dengan menyediakan pembolehubah konteks ini:
I am learning {{language}}. It is {{{adjective}}}.
Kami akan memperoleh output yang ditunjukkan di bawah:<span>var context = {"language" : "<h3 id="Handlebars">Handlebars</h3>","adjective": "<h3 id="awesome">awesome</h3>"}</span>
pembantu
Walaupun hendal adalah enjin templat yang kurang logik, ia boleh melaksanakan logik mudah menggunakan pembantu. Penolong Handle adalah pengecam mudah yang boleh diikuti oleh parameter (dipisahkan oleh ruang), seperti yang ditunjukkan di bawah:
I am learning <span><span><span><h3 id="gt">></h3></span>Handlebars<span><span></span>></span>. It is <span><span><h3 id="gt">></h3></span>awesome<span><span></span>></span></span></span></span>
setiap penolong
Setiap penolong digunakan untuk melangkah ke atas array. Sintaks penolong adalah {{#each arrayname}} yourContent {{/each}}. Kita boleh merujuk kepada item array individu dengan menggunakan kata kunci ini di dalam blok. Indeks elemen array boleh diberikan dengan menggunakan {{@index}}. Contoh di bawah menggambarkan penggunaan setiap penolong.
Jika kita menggunakan template berikut:
<span><span><span><script> src<span >="/path/to/handlebars.min.js"</script></span>></span><span><span></span>></span></span>
bersempena dengan pembolehubah konteks ini:<span><span><span><script> id<span >="handlebars-demo"</script></span> type<span>="text/x-handlebars-template"</span>></span><span><span><div>My name is {{name}}. I am a {{occupation}}.</div></span></span><span><span></span>></span></span>
Demo langsung contoh ini boleh didapati di Codepen.
<span>// Retrieve the template data from the HTML (jQuery is used here).var template = $('#handlebars-demo').html(); </span><span>// Compile the template data into a functionvar templateScript = Handlebars.compile(template); </span><span>var context = { "name" : "Ritesh Kumar", "occupation" : "developer" }; </span><span>// html = 'My name is Ritesh Kumar. I am a developer.'var html = templateScript(context); </span><span>// Insert the HTML code into the page$(document.body).append(html);</span>
Jika penolongkebenaran
, hendal akan menjadikan blok tersebut. Kami juga boleh menentukan seksyen templat yang dikenali sebagai "seksyen lain", dengan menggunakan {{else}}. Kecuali pembantu adalah kebalikan dari penolong jika. Ia menjadikan blok apabila keadaan menilai nilaifalsy . Untuk menunjukkan bagaimana penolong jika berfungsi, mari kita pertimbangkan templat di bawah:
<span>My name is {{name}}</span>
Kami akan memperoleh keputusan yang dilaporkan di bawah:
I am learning {{language}}. It is {{{adjective}}}.
ini berlaku kerana array kosong adalahfalsy
nilai.<span>var context = {"language" : "<h3 id="Handlebars">Handlebars</h3>","adjective": "<h3 id="awesome">awesome</h3>"}</span>
Pembantu Custom Anda boleh membuat pembantu anda sendiri untuk melakukan logik yang kompleks menggunakan sistem ekspresi yang disediakan oleh hendal. Terdapat dua jenis pembantu: pembantu fungsi dan pembantu blok. Takrif pertama dimaksudkan untuk ungkapan tunggal, manakala yang terakhir digunakan untuk ekspresi blok. Hujah -hujah yang diberikan kepada fungsi panggil balik adalah parameter yang ditulis selepas nama pembantu, dipisahkan oleh ruang. Pembantu dibuat menggunakan handlebars.RegistHelper () Kaedah:
Helper Fungsi Custom
Sintaks untuk penolong fungsi adalah {{HelperName Parameter1 Parameter2 ...}}. Untuk lebih memahami bagaimana untuk meneruskan pelaksanaannya, mari kita buat penolong fungsi yang dipanggil StudyStatus yang mengembalikan rentetan yang akan "diluluskan" jika lulus = 2015:
I am learning <span><span><span><h3 id="gt">></h3></span>Handlebars<span><span></span>></span>. It is <span><span><h3 id="gt">></h3></span>awesome<span><span></span>></span></span></span></span>
Dalam contoh kami parameter hanya satu. Walau bagaimanapun, jika kita mahu lulus lebih banyak parameter ke fungsi panggil balik pembantu kita boleh menulisnya dalam templat selepas parameter pertama dipisahkan oleh ruang.<span><!-- I am learning {{language}} -->I am learning {{language}}. It is {{!--adjective--}}</span>
<span>var context = {"language" : "Handlebars","adjective": "awesome"}</span>
Demo langsung contoh ini boleh didapati di sini.
Helper Blok Custom
<span><!-- I am learning Handlebars -->I am learning Handlebars. It is</span>
Pembantu blok tersuai digunakan dengan cara yang sama seperti pembantu fungsi, tetapi sintaks agak berbeza. Sintaks pembantu blok adalah:<span><span><span><script> src<span >="/path/to/handlebars.min.js"</script></span>></span><span><span></span>></span></span>
Apabila kami mendaftarkan pembantu blok tersuai, hendal secara automatik menambah objek pilihan sebagai parameter terakhir ke fungsi panggil balik. Objek Pilihan ini mempunyai kaedah FN () yang membolehkan kita mengubah konteks objek sementara untuk mengakses harta tertentu. Mari kita ubah contoh bahagian sebelumnya dengan menggunakan pembantu blok bernama StudyStatus tetapi dengan pembolehubah konteks yang sama:
<span><span><span><script> id<span >="handlebars-demo"</script></span> type<span>="text/x-handlebars-template"</span>></span><span><span><div>My name is {{name}}. I am a {{occupation}}.</div></span></span><span><span></span>></span></span>
Jika kod ini digunakan bersempena dengan templat yang ditakrifkan di bawah<span>// Retrieve the template data from the HTML (jQuery is used here).var template = $('#handlebars-demo').html(); </span><span>// Compile the template data into a functionvar templateScript = Handlebars.compile(template); </span><span>var context = { "name" : "Ritesh Kumar", "occupation" : "developer" }; </span><span>// html = 'My name is Ritesh Kumar. I am a developer.'var html = templateScript(context); </span><span>// Insert the HTML code into the page$(document.body).append(html);</span>
Dan inilah demo codepen.
<span>My name is {{name}}</span>
Templat separaI am learning {{language}}. It is {{{adjective}}}.
ia akan memberikan hasil berikut:
<span>var context = {"language" : "<h3 id="Handlebars">Handlebars</h3>","adjective": "<h3 id="awesome">awesome</h3>"}</span>
demo langsung kod ini boleh didapati dalam demo codepen ini.I am learning <span><span><span><h3 id="gt">></h3></span>Handlebars<span><span></span>></span>. It is <span><span><h3 id="gt">></h3></span>awesome<span><span></span>></span></span></span></span>
Pertama, anda perlu memasang hendal di seluruh dunia dengan menggunakan hendal pemasangan NPM -G. Sila, pastikan templat yang berbeza ditulis dalam fail berasingan dengan nama fail yang berbeza dan dengan sambungan .handlebars (contohnya demo.handlebars). Tidak perlu menggunakan tag
di dalam fail tersebut. Sekarang simpan semua fail templat dalam satu folder bernama templat. Anda boleh menggunakan mana -mana nama folder yang anda kehendaki tetapi jika anda berbuat demikian, jangan lupa untuk menukar arahan berikut dengan sewajarnya. Oleh itu, buka terminal dan laksanakan perintah:
Perintah ini akan menghasilkan fail bernama templatescompiled.js yang mengandungi semua templat yang disusun. Pengkompil akan memasukkan templat dalam handlebars.templates. Jika fail input adalah demo.handlebars, maka ia akan dimasukkan ke handlebars.templates.demo
<span><!-- I am learning {{language}} -->I am learning {{language}}. It is {{!--adjective--}}</span>
Sekarang kita perlu memasukkan templatescompiled.js dalam fail HTML sebagai skrip biasa. Adalah penting untuk diperhatikan bahawa kita tidak perlu memuatkan keseluruhan perpustakaan hendal kerana pengkompil itu sendiri tidak diperlukan lagi. Kita boleh menggunakan "runtime" yang lebih kecil sebaliknya:<span><span><span><script> src<span >="/path/to/handlebars.min.js"</script></span>></span><span><span></span>></span></span>
sekarang kita boleh menggunakan templat yang pada asalnya hadir dalam demo.handlebars dengan menggunakan kod berikut:
<span><span><span><script> id<span >="handlebars-demo"</script></span> type<span>="text/x-handlebars-template"</span>></span><span><span><div>My name is {{name}}. I am a {{occupation}}.</div></span></span><span><span></span>></span></span>
output akhir akan menjadi seperti berikut:<span>// Retrieve the template data from the HTML (jQuery is used here).var template = $('#handlebars-demo').html(); </span><span>// Compile the template data into a functionvar templateScript = Handlebars.compile(template); </span><span>var context = { "name" : "Ritesh Kumar", "occupation" : "developer" }; </span><span>// html = 'My name is Ritesh Kumar. I am a developer.'var html = templateScript(context); </span><span>// Insert the HTML code into the page$(document.body).append(html);</span>
Kod demo precompilation ini boleh didapati di GitHub.
KESIMPULAN
Dalam artikel ini kita telah membincangkan konsep asas hendal. Kami juga mengkaji fungsi dan sintaks yang sering digunakan. Saya harap anda menikmati tutorial ini dan anda akan menggunakan demo yang disertakan untuk memahami topik ini. Saya tidak sabar untuk membaca komen anda.Apakah template hendal?
Templat Handlebars adalah struktur berasaskan teks yang mentakrifkan susun atur dan struktur kandungan HTML dinamik dalam pembangunan web. Handlebars adalah perpustakaan templating JavaScript yang membolehkan anda membuat templat ini, menjadikannya lebih mudah untuk menghasilkan kandungan HTML berdasarkan data. Handlebar ini disertakan dalam pendakap keriting berganda {{}}. Contohnya:
Hello, {{name}}!
Dalam template handlebar mudah ini, {{name}} adalah pemegang tempat untuk pembolehubah yang disebut "Nama . " Apabila anda membuat templat ini dengan data tertentu, seperti {name: "John"}, hendal menggantikan {{name}} dengan nilai data yang sepadan:
Hello, John!
templat hendal sangat berguna untuk mewujudkan kandungan HTML yang konsisten dan dikekalkan, kerana mereka memisahkan persembahan (struktur HTML) dari data, menjadikannya lebih mudah untuk mengemaskini dan menggunakan semula template di seluruh aplikasi web anda. Handlebars menawarkan ciri -ciri yang lebih canggih, menjadikannya sesuai untuk keperluan dan projek templat yang kompleks di mana ekosistem dan sokongan komuniti yang lebih besar adalah penting. Misai, sebaliknya, lebih mudah dan mengikuti falsafah "kurang logik", menjadikannya pilihan yang baik untuk projek-projek yang mengutamakan kesederhanaan dan mudah alih di pelbagai bahasa pengaturcaraan.
Atas ialah kandungan terperinci Panduan pemula ' s ke hendal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Python dan JavaScript masing -masing mempunyai kelebihan mereka sendiri, dan pilihan bergantung kepada keperluan projek dan keutamaan peribadi. 1. Python mudah dipelajari, dengan sintaks ringkas, sesuai untuk sains data dan pembangunan back-end, tetapi mempunyai kelajuan pelaksanaan yang perlahan. 2. JavaScript berada di mana-mana dalam pembangunan front-end dan mempunyai keupayaan pengaturcaraan tak segerak yang kuat. Node.js menjadikannya sesuai untuk pembangunan penuh, tetapi sintaks mungkin rumit dan rawan kesilapan.

Javascriptisnotbuiltoncorc; it'saninterpretedlanguagethatrunsonenginesoftenwritteninc .1) javascriptwasdesignedasalightweight, interpratedlanguageforwebbrowsers.2)

JavaScript boleh digunakan untuk pembangunan front-end dan back-end. Bahagian depan meningkatkan pengalaman pengguna melalui operasi DOM, dan back-end mengendalikan tugas pelayan melalui Node.js. 1. Contoh front-end: Tukar kandungan teks laman web. 2. Contoh backend: Buat pelayan Node.js.

Memilih Python atau JavaScript harus berdasarkan perkembangan kerjaya, keluk pembelajaran dan ekosistem: 1) Pembangunan Kerjaya: Python sesuai untuk sains data dan pembangunan back-end, sementara JavaScript sesuai untuk pembangunan depan dan penuh. 2) Kurva Pembelajaran: Sintaks Python adalah ringkas dan sesuai untuk pemula; Sintaks JavaScript adalah fleksibel. 3) Ekosistem: Python mempunyai perpustakaan pengkomputeran saintifik yang kaya, dan JavaScript mempunyai rangka kerja front-end yang kuat.

Kuasa rangka kerja JavaScript terletak pada pembangunan yang memudahkan, meningkatkan pengalaman pengguna dan prestasi aplikasi. Apabila memilih rangka kerja, pertimbangkan: 1.

Pengenalan Saya tahu anda mungkin merasa pelik, apa sebenarnya yang perlu dilakukan oleh JavaScript, C dan penyemak imbas? Mereka seolah -olah tidak berkaitan, tetapi sebenarnya, mereka memainkan peranan yang sangat penting dalam pembangunan web moden. Hari ini kita akan membincangkan hubungan rapat antara ketiga -tiga ini. Melalui artikel ini, anda akan mempelajari bagaimana JavaScript berjalan dalam penyemak imbas, peranan C dalam enjin pelayar, dan bagaimana mereka bekerjasama untuk memacu rendering dan interaksi laman web. Kita semua tahu hubungan antara JavaScript dan penyemak imbas. JavaScript adalah bahasa utama pembangunan front-end. Ia berjalan secara langsung di penyemak imbas, menjadikan laman web jelas dan menarik. Adakah anda pernah tertanya -tanya mengapa Javascr

Node.js cemerlang pada I/O yang cekap, sebahagian besarnya terima kasih kepada aliran. Aliran memproses data secara berperingkat, mengelakkan beban memori-ideal untuk fail besar, tugas rangkaian, dan aplikasi masa nyata. Menggabungkan sungai dengan keselamatan jenis typescript mencipta powe

Perbezaan prestasi dan kecekapan antara Python dan JavaScript terutamanya dicerminkan dalam: 1) sebagai bahasa yang ditafsirkan, Python berjalan perlahan tetapi mempunyai kecekapan pembangunan yang tinggi dan sesuai untuk pembangunan prototaip pesat; 2) JavaScript adalah terhad kepada benang tunggal dalam penyemak imbas, tetapi I/O multi-threading dan asynchronous boleh digunakan untuk meningkatkan prestasi dalam node.js, dan kedua-duanya mempunyai kelebihan dalam projek sebenar.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),
