0Pricing
HTML Academy · Pelajaran

Menggunakan template dengan Perenderan JavaScript

Gabungkan template dengan perulangan JavaScript untuk daftar dinamis.

Menggunakan template dengan Perenderan JavaScript adalah pelajaran HTML Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar HTML Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus HTML Academy mencakup 4 pelajaran total.

Elemen template

Elemen <template> menyimpan HTML yang tidak dirender sampai dikloning dan disisipkan oleh JavaScript. Kontennya tidak aktif—skrip tidak berjalan, gambar tidak dimuat, dan gaya tidak diterapkan—sampai template diaktifkan.

Mengakses Konten Template

Konten template berada dalam DocumentFragment di template.content. Untuk menggunakannya, kloning fragmen tersebut: const clone = template.content.cloneNode(true). Argumen true melakukan kloning mendalam yang mencakup semua simpul turunan.

Merender Instans Template

Sesuaikan klon sebelum menyisipkannya: lakukan query di dalam klon, tetapkan konten teks, dan tambahkan pendengar peristiwa. Kemudian tambahkan ke DOM: container.appendChild(clone). Setiap cloneNode() membuat salinan independen—ubah salah satunya tanpa memengaruhi yang lain.

const tmpl = document.getElementById("card-template");
function renderCard(data) {
  const clone = tmpl.content.cloneNode(true);
  clone.querySelector(".title").textContent = data.title;
  clone.querySelector(".body").textContent = data.body;
  container.appendChild(clone);
}

Merender Daftar dari Template

Gabungkan template dengan Array.forEach atau Array.map untuk merender daftar: untuk setiap item dalam data, kloning template, isi nilainya, lalu tambahkan ke container daftar. Pola ini mirip kerangka kerja, tetapi dibangun di atas HTML dan JavaScript standar.

Template untuk Baris Tabel

Tentukan <template> yang berisi <tr> dengan beberapa sel. Kloning dan isi untuk setiap baris data. Cara ini menghindari penggabungan string untuk membuat HTML—tidak diperlukan pelepasan karakter karena Anda menetapkan textContent, bukan innerHTML.

Aktivasi Template Bersifat Eksplisit

Template tidak pernah dirender secara otomatis. Hal ini membuatnya aman untuk menyimpan fragmen yang akan dirender secara kondisional: tampilkan template "tidak ada hasil" hanya ketika pencarian tidak menghasilkan apa pun, template kesalahan hanya saat terjadi kegagalan jaringan, dan kerangka pemuatan selama pengambilan data.

Template Bertingkat

Sebuah template dapat berisi template lain—template bertingkat tetap tidak aktif di dalam DocumentFragment template luar. Hal ini memungkinkan hierarki mirip komponen, dengan template luar yang mengkloning lalu mengaktifkan template bagian dalam sesuai kebutuhan.

Gaya Terlingkup dalam Template

Gaya di dalam tag <style> milik template tidak diterapkan ke dokumen—gaya tersebut tidak aktif sampai template dibuat menjadi instans dan kontennya dipindahkan ke DOM aktif. Dengan demikian, template dapat membawa gayanya sendiri tanpa mengotori halaman.

template vs innerHTML

Penguraian innerHTML adalah pemrosesan string HTML secara sinkron—HTML diuraikan ulang setiap kali. template.cloneNode() menyalin pohon yang sudah diuraikan. Untuk perenderan berulang dengan struktur yang sama, kloning template lebih cepat dan menghindari risiko XSS dari penggabungan string.

Keterbatasan Pengikatan Data

Elemen template tidak memiliki pengikatan data bawaan—Anda harus melakukan query dan mengisi setiap klon secara manual. Untuk kebutuhan pengikatan data yang kompleks, kerangka kerja atau pustaka lebih sesuai. Template ditujukan untuk pola perenderan manual yang sederhana tanpa beban kerangka kerja.

Dukungan Peramban

Elemen template didukung di semua peramban modern (IE11 hanya memiliki dukungan sebagian). Untuk lingkungan yang memerlukan dukungan IE, gunakan polyfill dengan menguraikan konten template saat inisialisasi. Dalam proyek modern, gunakan template tanpa polyfill.

Pemeriksaan Pengetahuan

Mengapa template.content.cloneNode(true) lebih disarankan daripada innerHTML untuk perenderan berulang?

Ringkasan

Elemen template menyimpan fragmen HTML yang tidak aktif dan telah diuraikan sebelumnya. Kloning template.content membuat instans independen untuk pengikatan data manual. Jika dipadukan dengan penetapan textContent (tanpa XSS), template memungkinkan perenderan daftar, antarmuka pengguna kondisional, dan pola HTML yang dapat digunakan kembali dengan hanya API peramban standar.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menggunakan template dengan Perenderan JavaScript” gratis?

Ya — teks lengkap “Menggunakan template dengan Perenderan JavaScript” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus HTML Academy, upgrade ke CoddyKit PRO. Kursus HTML Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menggunakan template dengan Perenderan JavaScript”?

Gabungkan template dengan perulangan JavaScript untuk daftar dinamis. Kamu berlatih HTML Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai HTML Academy?

Tidak diperlukan pengalaman sebelumnya. HTML Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Menggunakan template dengan Perenderan JavaScript” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran HTML Academy ini?

Ya. Setiap pelajaran HTML Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Elemen template untuk Konten Inert
  2. Mengkloning Template dengan cloneNode
  3. Menggunakan template dengan Perenderan JavaScript
  4. Keamanan Template vs innerHTML
← Kembali ke HTML Academy