cari
Rumahhujung hadapan webtutorial jsMembuat templat HTML dengan mistache.js

Creating HTML Templates with Mustache.js

Aplikasi web biasanya menggunakan seni bina MVC untuk memisahkan logik perniagaan dari pandangan persembahan. Projek -projek kompleks melibatkan sejumlah besar HTML pelanggan yang menggunakan operasi JavaScript, yang boleh menjadi sukar untuk dikekalkan. Dalam kes ini, kita boleh menggunakan sistem templat untuk meningkatkan kebolehgunaan semula dan memudahkan tugas pengurusan pandangan. Mustache.js menyediakan sistem templat yang didokumentasikan dengan baik yang boleh digunakan untuk menguruskan templat. Selain itu, kerana misai menyokong pelbagai bahasa, kami tidak perlu menggunakan sistem templat berasingan di sisi pelayan. Artikel ini menerangkan asas -asas menggunakan misai.

mata utama

    Mustache.js adalah sistem templat yang didokumentasikan dengan baik yang boleh digunakan untuk menguruskan templat HTML dalam aplikasi web yang kompleks, meningkatkan kebolehgunaan semula dan memudahkan tugas pengurusan pandangan.
  • mistache.js tidak logik, yang bermaksud templatnya tidak mengandungi sebarang keadaan jika else atau untuk gelung. Ia menggunakan label yang dilambangkan oleh pendakap ganda untuk menambah data ke templat.
  • Templat kumis boleh ditakrifkan dalam beberapa cara, termasuk kaedah sebaris, skrip sebaris, dan coretan HTML luaran. Kaedah yang mana untuk dipilih bergantung kepada keperluan khusus projek.
  • Mustache.js adalah alat pelbagai fungsi yang boleh digunakan pada kedua-dua klien dan sisi pelayan dan menyokong pelbagai bahasa. Ia juga dilengkapi dengan tag untuk menguruskan templat kompleks seperti pembolehubah, bahagian, fungsi, dan templat separa.

Mengapa kita memerlukan sistem templat?

Kebanyakan pemaju yang tidak tahu mengenai sistem templat membuat blok HTML baru kod dan memasukkannya secara dinamik ke dalam DOM menggunakan JavaScript. Kaedah yang sama adalah untuk menentukan elemen HTML sebagai rentetan, kemudian tetapkan harta InnerHTML atau hubungi kaedah JQuery HTML (). Berikut adalah contoh:

var dynamic_html = "<div>HighlightedAuthor</div>";

document.getElementById("container").innerHTML = dynamic_html;
Cara lain untuk membina DOM adalah untuk membuat unsur -unsur dan menambahkannya secara berasingan, seperti yang ditunjukkan di bawah:

var title = document.createElement('div');
var highlight = document.createElement('span');
var highlight_text = document.createTextNode("Highlight");
var author = document.createElement('span');
var author_text = document.createTextNode("Author");
var container = document.getElementById('container');

highlight.appendChild(highlight_text);
title.appendChild(highlight);
author.appendChild(author_text);
title.appendChild(author);
container.appendChild(title);
Kedua -dua kaedah di atas dapat menambahkan elemen secara berkesan ke dokumen secara dinamik. Pertimbangkan situasi di mana kami mempunyai senarai peluru yang direka dengan baik yang perlu digunakan dalam tiga jenis halaman laman web. Menggunakan teknik ini, kita perlu mengulangi senarai kod HTML di tiga lokasi yang berbeza. Ini sering dianggap sebagai kebiasaan pengekodan yang buruk. Dalam kes ini, kita boleh menggunakan templat yang telah ditetapkan di lokasi yang berbeza tanpa menduplikasi kod. Mustache.js adalah enjin templat JavaScript yang sangat popular. Oleh kerana kumis menawarkan templat sisi pelayan dan pelanggan dalam pelbagai bahasa, kita tidak perlu bimbang tentang memilih enjin templat yang berasingan.

pemula mistache.js

Mustache adalah sistem templat bebas logik sumber terbuka yang sesuai untuk bahasa seperti JavaScript, Ruby, Python, PHP, dan Java. Anda boleh mengakses halaman rasmi di GitHub untuk mendapatkan salinan perpustakaan. Misai menggunakan templat dan pandangan sebagai asas untuk membuat templat dinamik. Pandangan ini mengandungi data JSON untuk dimasukkan ke dalam templat. Templat mengandungi persembahan HTML atau data dengan tag templat yang mengandungi data paparan. Kami menyebut sebelum ini bahawa kumis tidak logik. Ini bermakna bahawa templat tidak mengandungi sebarang syarat if-else atau untuk gelung. Sekarang, mari kita mulakan dengan template misai dengan contoh mudah.

var dynamic_html = "<div>HighlightedAuthor</div>";

document.getElementById("container").innerHTML = dynamic_html;

Pertama, kita perlu memasukkan fail Mustache.js dalam dokumen. Kemudian kita boleh mula membuat template misai. Dalam contoh di atas, kita mempunyai pandangan yang mengandungi nama dan pekerjaan seseorang. Kami kemudian menggunakan tag yang membentangkan kod dan nama dan data kerjaya dalam fungsi render (). Label diwakili oleh pendakap dua atau janggut di sekelilingnya. Sekarang mari kita lihat bagaimana kaedah render () berfungsi.

Rendering Template Misai

Kod berikut menunjukkan pelaksanaan fungsi render () dalam fail Mustache.js. Tiga parameter boleh diluluskan untuk membuat (). Templat dan pandangan parameter pertama diperlukan. Separa boleh dianggap sebagai templat dinamik yang anda boleh menyuntik ke dalam templat utama. Dalam contoh terdahulu kami, kami meluluskan templat sebagai parameter inline, pandangan sebagai parameter kedua, dan memberikan hasil kepada pemboleh ubah output.

var title = document.createElement('div');
var highlight = document.createElement('span');
var highlight_text = document.createTextNode("Highlight");
var author = document.createElement('span');
var author_text = document.createTextNode("Author");
var container = document.getElementById('container');

highlight.appendChild(highlight_text);
title.appendChild(highlight);
author.appendChild(author_text);
title.appendChild(author);
container.appendChild(title);
Ini adalah bentuk yang paling asas untuk menggunakan kumis. Mari kita lihat kaedah lain yang boleh digunakan untuk membuat lebih banyak kod kanonik.

Template misai definisi

Terdapat beberapa cara untuk menentukan template misai dalam permohonan anda. Kaedah ini sama dengan menggunakan gaya inline, gaya gaya inline, dan stylesheet luaran untuk memasukkan CSS. Contoh yang dibincangkan sebelumnya dapat dianggap sebagai kaedah sebaris kerana kita lulus templat terus ke fungsi. Kaedah ini menghalang kemungkinan templat yang boleh diguna semula. Mari kita lihat bagaimana untuk menentukan templat sebagai templat skrip inline dan bukannya lulus terus ke fungsi.

templat sebagai skrip inline

kita boleh pergi ke

Anda boleh memasukkan banyak templat dengan ID yang berbeza dalam dokumen yang anda mahukan. Apabila anda ingin menggunakan templat, gunakan innerHTML untuk mendapatkan HTML di dalam tag skrip dan lulus sebagai templat. Contoh pertama kami akan ditukar kepada kod berikut:

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Mustache.js Inline Method</title>
  <🎜>
</head>
<body>
  <🎜>
  <p id="person"></p>
</body>
<🎜>
</html>

Seperti yang anda lihat, templat disimpan secara berasingan dan digunakan secara dinamik apabila diperlukan. Kaedah ini meningkatkan kemungkinan menggunakan semula templat. Walau bagaimanapun, menggunakan skrip sebaris akan mengehadkan skop templat ke satu halaman. Jika anda mempunyai beberapa halaman, anda mesti menentukan templat sekali lagi. Jadi termasuk templat dalam fail luaran akan menjadi penyelesaian yang ideal - sama seperti CSS.

templat sebagai luaran html luaran

Dalam teknik ini, kami akan menggunakan jQuery untuk melaksanakan templat. JQuery menyediakan fungsi yang dipanggil beban () yang boleh digunakan untuk mendapatkan sebahagian daripada dokumen luaran. Kami akan menggunakan kaedah ini untuk memuatkan templat secara dinamik dari fail templat luaran. Fungsi beban () melaksanakan skrip dan bukannya mengembalikannya, jadi kami tidak dapat membuat templat di dalam tag skrip seperti yang kami lakukan dalam kaedah sebelumnya. Contoh berikut menunjukkan fail templat luaran yang akan kami gunakan.

var dynamic_html = "<div>HighlightedAuthor</div>";

document.getElementById("container").innerHTML = dynamic_html;

Kami telah menggunakan elemen <div> dan bukan skrip untuk templat untuk menjadikannya serasi dengan fungsi beban JQuery (). Di sini kita mempunyai tiga templat yang berbeza dengan tiga ID yang berbeza. Sekarang, mari kita terus menggunakan templat ini di halaman anda. <pre class='brush:php;toolbar:false;'>var title = document.createElement('div'); var highlight = document.createElement('span'); var highlight_text = document.createTextNode(&quot;Highlight&quot;); var author = document.createElement('span'); var author_text = document.createTextNode(&quot;Author&quot;); var container = document.getElementById('container'); highlight.appendChild(highlight_text); title.appendChild(highlight); author.appendChild(author_text); title.appendChild(author); container.appendChild(title);</pre> <p> JQuery memasukkan dokumen yang dikembalikan ke dalam elemen HTML dan bukannya menyerahkannya kepada pembolehubah. Oleh itu, kita memerlukan bekas maya untuk memegang templat. Saya telah menggunakan bekas templat yang tersembunyi secara lalai. Contoh di atas mengambil template1 dan memuatkannya. Kita kemudian boleh mendapatkan templat dari bekas maya dan lulus ke misai untuk rendering. Ini adalah cara kaedah luaran berfungsi. Kami juga boleh menggunakan permintaan AJAX untuk mendapatkan data dari pelayan. </p> <p> <strong> Kesimpulan </strong> </p> <p> Enjin dan kerangka template sangat penting untuk menguruskan sistem kompleks dengan pandangan persembahan secara dinamik. Mustache.js adalah salah satu pilihan terbaik untuk template admin di sisi klien. Kami menerangkan pada permulaan tutorial ini mengapa templat penting. Kemudian, kami terus memperkenalkan pelbagai teknik menggunakan template misai. Anda kini dapat memilih cara untuk melaksanakan template misai dalam projek anda. Kami telah melakukan meneroka pelbagai teknik untuk menggunakan template misai, tetapi kumis juga dilengkapi dengan tag seperti pembolehubah, bahagian, fungsi, dan templat separa yang digunakan untuk menguruskan templat kompleks. Membincangkan sintaks untuk setiap tag adalah di luar skop tutorial ini. Anda boleh mencari panduan komprehensif untuk tag misai pada halaman github mistache. Jangan ragu untuk berkongsi pengalaman anda sebelumnya dengan mistache.js! </p> <p> <strong> FAQ Mustache.js (FAQ) </strong> <s> </s></p> <ul> <li> Apakah perbezaan utama antara mistache.js dan perpustakaan template JavaScript lain? <strong> </strong> </li> </ul> Mustache.js adalah sintaks templat logik. Ini bermakna ia boleh digunakan untuk HTML, fail konfigurasi, kod sumber -apa -apa. Ia berfungsi dengan memperluaskan label dalam templat menggunakan hash atau nilai yang disediakan dalam objek. Tidak seperti perpustakaan template JavaScript lain, mistache.js tidak mengandungi sebarang kenyataan, klausa lain, atau untuk gelung. Sebaliknya, ia hanya mempunyai label. Sesetengah tag digantikan dengan nilai, ada yang tidak mempunyai apa -apa, yang lain adalah satu siri nilai. <p> </p> <ul> <li> bagaimana menggunakan mistache.js untuk templat html? <strong> </strong> </li> </ul> Untuk menggunakan mistache.js untuk templat HTML, anda perlu memasukkan skrip mistache.js terlebih dahulu dalam fail HTML. Kemudian, anda menentukan templat dalam tag <p>. Templat ini boleh mengandungi ruang letak untuk memasukkan data. Placshurs ini diwakili oleh pendakap ganda, seperti {{name}}. Anda kemudian menggunakan fungsi mistache.render () untuk menjadikan templat dengan data yang anda berikan. <code><script></script>

  • Bolehkah saya menggunakan mistache.js dengan node.js?

Ya, anda boleh menggunakan mistache.js dengan node.js. Untuk melakukan ini, anda perlu memasang pakej kumis menggunakan npm. Sebaik sahaja pemasangan selesai, anda boleh memerlukannya dalam fail Node.js dan menggunakannya untuk menjadikan templat.

  • Bagaimana menggunakan mistache.js untuk melintasi tatasusunan?

Dalam mistache.js, anda boleh melintasi array menggunakan {{#Array}} ... {{/array}} sintaks. Dalam blok ini, anda boleh menggunakan {{.}} Untuk merujuk item semasa dalam array. Ini membolehkan anda memaparkan setiap item dalam array dalam templat.

  • Bagaimana menggunakan pernyataan bersyarat dalam mistache.js?

Walaupun mistache.js adalah perpustakaan template yang tidak logik yang tidak menyokong pernyataan tradisional jika, anda masih boleh menggunakan bahagian untuk mendapatkan hasil yang sama. Bahagian membuat blok teks sekali atau lebih kali berdasarkan nilai kunci dalam objek data.

  • Bagaimana untuk memasukkan beberapa templat dalam mistache.js?

Beberapa templat dalam mistache.js membolehkan anda memasukkan templat yang lebih kecil dalam templat yang lebih besar. Ini sangat berguna untuk menggunakan semula unsur -unsur biasa seperti tajuk dan kaki. Untuk memasukkan templat separa, anda boleh menggunakan sintaks {{& gt; partial}}.

  • bagaimana untuk melarikan diri html dalam mistache.js?

Secara lalai, Mustache.js melarikan diri HTML dalam data untuk mencegah serangan XSS. Jika anda ingin memberikan HTML dari data anda, anda boleh menggunakan sintaks triple brace, seperti {{{html}}}.

  • Bolehkah saya menggunakan mistache.js untuk sisi pelayan?

Ya, anda boleh menggunakan mistache.js untuk sisi pelayan. Ini berguna untuk membuat template sebelum menghantarnya kepada pelanggan, mengurangkan jumlah JavaScript yang perlu dilaksanakan pada pelanggan.

  • Bagaimana untuk mempercepatkan template dalam mistache.js?

Templat precompiling dalam mistache.js dapat meningkatkan prestasi dengan mengurangkan kerja yang perlu dilakukan pada masa runtime. Untuk precompile templat, anda boleh menggunakan fungsi mistache.parse ().

  • bagaimana debug template mistache.js?

Debugging Template mistache.js boleh menjadi rumit kerana perpustakaan tidak memberikan banyak mesej ralat. Walau bagaimanapun, anda boleh menggunakan fungsi mistache.parse () untuk memeriksa sama ada templat anda sah. Fungsi ini mengembalikan pelbagai tag yang boleh anda periksa untuk melihat apakah struktur templat anda betul.

Atas ialah kandungan terperinci Membuat templat HTML dengan mistache.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Python vs JavaScript: Komuniti, Perpustakaan, dan SumberPython vs JavaScript: Komuniti, Perpustakaan, dan SumberApr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Dari C/C ke JavaScript: Bagaimana semuanya berfungsiDari C/C ke JavaScript: Bagaimana semuanya berfungsiApr 14, 2025 am 12:05 AM

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Enjin JavaScript: Membandingkan PelaksanaanEnjin JavaScript: Membandingkan PelaksanaanApr 13, 2025 am 12:05 AM

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Beyond the Browser: JavaScript di dunia nyataBeyond the Browser: JavaScript di dunia nyataApr 12, 2025 am 12:06 AM

Aplikasi JavaScript di dunia nyata termasuk pengaturcaraan sisi pelayan, pembangunan aplikasi mudah alih dan Internet of Things Control: 1. Pengaturcaraan sisi pelayan direalisasikan melalui node.js, sesuai untuk pemprosesan permintaan serentak yang tinggi. 2. Pembangunan aplikasi mudah alih dijalankan melalui reaktnatif dan menyokong penggunaan silang platform. 3. Digunakan untuk kawalan peranti IoT melalui Perpustakaan Johnny-Five, sesuai untuk interaksi perkakasan.

Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Apr 11, 2025 am 08:23 AM

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend)Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend)Apr 11, 2025 am 08:22 AM

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

JavaScript: meneroka serba boleh bahasa webJavaScript: meneroka serba boleh bahasa webApr 11, 2025 am 12:01 AM

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

Evolusi JavaScript: Trend Semasa dan Prospek Masa DepanEvolusi JavaScript: Trend Semasa dan Prospek Masa DepanApr 10, 2025 am 09:33 AM

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

mPDF

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),

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)