vue 3 komponen | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: vue 3 komponen

Wednesday, April 29, 2026

vue 3 komponen

📚 Artikel 4 dari 16 — Vue from Zero to Zorro

Belajar Komponen Vue 3 Single File Component

Template, Script, dan Style dalam satu file .vue — dan kenapa ini mengubah cara kamu berpikir tentang komponen.

#KomponenVue3 #SingleFileComponent #BelajarVue #VueFrontEnd
⏱️
Estimasi Baca
8–10 Menit
🎯
Level
Pemula
📅
Tahun
2026
🔥
Vue Version
Vue 3 (Vite)
📖 Bagian dari Seri Lengkap
Seri Belajar Vue: Vue from Zero to Zorro

16 artikel terstruktur dari nol sampai mahir — dipandu, berurutan, dan siap langsung dipraktikkan.

📚 Lihat Daftar Isi Seri →

Pernah nggak kamu buka proyek web lama dan bingung — "HTML-nya di mana? CSS-nya di file mana? JavaScript-nya kok terpisah?" Lalu kamu kelimpungan buka 5 file sekaligus hanya untuk memahami satu tombol. Nah, kalau kamu belajar komponen Vue 3, kamu akan menemukan solusi elegan untuk masalah klasik ini: semuanya dalam satu file. Konsep ini disebut Single File Component (SFC) — dan inilah yang membuat Vue digemari jutaan developer di seluruh dunia.

Di artikel keempat dari seri Vue from Zero to Zorro ini, kita akan bedah tuntas apa itu SFC, bagaimana strukturnya, dan kenapa cara ini jauh lebih rapi dibanding pendekatan konvensional. Siap? Mari kita mulai.

🧩 Apa Itu Single File Component Vue? (Dan Kenapa Kamu Bakal Suka)

Bayangkan kamu sedang merakit lemari IKEA. Biasanya semua komponen — papan kayu, baut, engsel, laci — dikemas dalam satu kotak per unit. Kamu tidak perlu ke 3 gudang berbeda untuk mencari bagian dari lemari yang sama, kan?

Nah, itulah filosofi Single File Component Vue alias SFC. Setiap komponen dikemas rapi dalam satu file berekstensi .vue yang terdiri dari tiga blok utama:

📐 Definisi Utama
Single File Component (SFC) Vue

File berekstensi .vue yang menggabungkan tiga blok dalam satu tempat: <template> (HTML/struktur), <script> (logika JavaScript), dan <style> (tampilan CSS). Inilah unit terkecil dari antarmuka Vue yang bisa dipakai ulang (reusable).

🔥 Fakta Menarik

Vue adalah satu-satunya framework JavaScript mainstream yang mempopulerkan konsep SFC sejak versi pertamanya. Konsep ini sekarang diadopsi luas — bahkan Svelte dan Angular pun terinspirasi dari pendekatan serupa!

Blok Fungsi Bahasa Wajib?
<template> Struktur tampilan/HTML HTML + Vue Directives ✅ Ya
<script setup> Logika & data komponen JavaScript / TypeScript ⚡ Direkomendasikan
<style scoped> Tampilan / styling CSS / SCSS / Less 🔘 Opsional

🏗️ Anatomi Komponen Vue 3 — Bedah File .vue dari Atas ke Bawah

Sekarang kita bedah satu per satu. Anggap sebuah komponen Vue seperti sebuah kartu nama profesional: ada nama (template), ada latar belakang profesi (script), dan ada desain visualnya (style). Semuanya satu paket, mencerminkan satu identitas.

1

<template> — Wajah Komponen

Di sinilah kamu tulis HTML yang akan muncul di browser. Template di Vue mendukung sintaks khusus Vue seperti v-if, v-for, dan double curly braces {{ }} untuk menampilkan data. Vue 3 mengizinkan lebih dari satu root element — nggak perlu lagi bungkus semua dalam satu div!

ProfileCard.vue — <template>
<template>
  <div class="profile-card">
    <h2>{{ nama }}</h2>
    <p>{{ jabatan }}</p>
    <button @click="sapa">Sapa!</button>
  </div>
</template>
2

<script setup> — Otak Komponen

Ini tempat kamu mendefinisikan data, fungsi, dan logika komponen. Atribut setup adalah cara modern Vue 3 — lebih ringkas, lebih clean, dan semua yang dideklarasikan di sini otomatis bisa dipakai di template tanpa perlu export manual.

ProfileCard.vue — <script setup>
<script setup>
import { ref } from 'vue'

const nama = ref('Budi Santoso')
const jabatan = ref('Frontend Developer')

function sapa() {
  alert(`Halo, aku ${nama.value}!`)
}
</script>
💡 Tips Pemula

Selalu gunakan <script setup>, bukan <script> biasa. Ini adalah syntax sugar resmi Vue 3 yang membuat kode lebih ringkas dan performanya lebih optimal. Dokumentasi resmi Vue pun merekomendasikan ini untuk proyek baru!

3

<style scoped> — Penampilan Komponen

Blok ini berisi CSS untuk styling komponen. Kata kunci scoped adalah fitur ajaib Vue: style hanya berlaku untuk komponen ini saja, jadi tidak akan bocor ke komponen lain. Kamu tidak perlu lagi khawatir naming conflict CSS!

ProfileCard.vue — <style scoped>
<style scoped>
.profile-card {
  background: #ffffff;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.1);
}

button {
  background: #6366f1;
  color: white;
  border: none;
  padding: 8px 20px;
  border-radius: 8px;
  cursor: pointer;
}
</style>

🚀 Cara Membuat dan Memakai Komponen Vue 3 Pertamamu

Teori sudah, sekarang praktik. Mari buat komponen sederhana dari nol dan pasang ke halaman utama. Ikuti langkah-langkah berikut:

1

Buat file baru di folder src/components/

Beri nama yang deskriptif dan menggunakan PascalCase. Contoh: ProfileCard.vue, NavBar.vue, UserAvatar.vue.

2

Tulis ketiga blok dalam file tersebut

Mulai dari <template>, lanjut <script setup>, dan akhiri dengan <style scoped>. Urutan ini adalah konvensi umum yang dipakai komunitas Vue.

3

Import dan gunakan di komponen lain

Dengan <script setup>, cukup import saja — komponen langsung tersedia di template tanpa perlu didaftarkan manual.

4

Jalankan dev server dan lihat hasilnya

Jalankan npm run dev, buka browser, dan komponen kamu sudah tampil. Selamat, kamu sudah membuat komponen Vue pertamamu!

App.vue — Menggunakan ProfileCard
<template>
  <div class="app">
    <!-- Pakai komponen layaknya HTML tag biasa -->
    <ProfileCard />
    <ProfileCard />
    <ProfileCard />
  </div>
</template>

<script setup>
import ProfileCard from './components/ProfileCard.vue'
</script>
Insight Penting

Perhatikan baris <ProfileCard /> bisa dipakai tiga kali! Inilah kekuatan nyata komponen Vue 3 — tulis sekali, pakai berkali-kali tanpa duplikasi kode. Ini yang disebut prinsip reusability.

⚖️ SFC vs Cara Lama: Kenapa Single File Component Menang?

Mungkin kamu bertanya: "Kenapa nggak bikin file HTML, CSS, JS terpisah saja seperti biasa?" Pertanyaan bagus. Mari kita bandingkan secara jujur.

📊 Analisis Perbandingan
❌ Cara Lama (File Terpisah)
  • CSS global bisa saling tabrakan
  • Harus buka 3 file untuk 1 komponen
  • Susah tahu mana CSS milik mana
  • Refactoring jadi mimpi buruk
  • Tidak ada enkapsulasi bawaan
✅ Single File Component Vue
  • CSS terisolasi dengan scoped
  • Semua dalam satu file, mudah navigasi
  • Kode lebih mudah dibaca & dipahami
  • Refactoring dan testing lebih mudah
  • Dukungan tooling kelas dunia (VSCode)
⚠️ Perhatian

File .vue tidak bisa langsung dibuka di browser biasa — ia perlu diproses oleh build tool seperti Vite atau Webpack. Itulah kenapa kamu perlu setup proyek Vue terlebih dahulu (sudah dibahas di artikel sebelumnya!).

Insight Penting

Pasang ekstensi Volar (Vue Official) di VS Code untuk pengalaman terbaik menulis single file component vue. Kamu akan dapat fitur autocomplete, syntax highlighting, dan type checking yang membuat coding jadi jauh lebih nyaman!

🎉

Kesimpulan: Satu File, Satu Kekuatan

Di artikel ini kamu sudah mempelajari:

  • Apa itu komponen Vue 3 dan mengapa SFC adalah cara terbaik membangunnya
  • Tiga blok utama dalam single file component vue: <template>, <script setup>, dan <style scoped>
  • Cara membuat dan menggunakan komponen di dalam komponen lain
  • Keunggulan SFC dibanding pendekatan file terpisah klasik

SFC bukan sekadar fitur — ini adalah cara berpikir tentang antarmuka sebagai kumpulan blok kecil yang mandiri dan bisa dipakai ulang. Semakin kamu terbiasa, semakin kamu akan menghargai betapa elegannya desain Vue.

💬 Punya pertanyaan atau kebingungan soal SFC? Tinggalkan di kolom komentar! Dan kalau artikel ini membantu, bagikan ke teman yang juga lagi belajar Vue 3 — siapa tau bisa belajar bareng! 🚀

#KomponenVue3 #SingleFileComponentVue #BelajarVue #VueFrontEnd

Artikel ini adalah bagian dari seri 16 Artikel Belajar Vue: Vue from Zero to Zorro — panduan terstruktur dari nol sampai mahir.

📍 Navigasi Seri
← Artikel Sebelumnya · No. 3
Struktur Proyek Vue 3 — Biar Nggak Bingung Lihat Folder dan File yang Tiba-tiba Muncul
→ Baca Artikel Sebelumnya
Artikel Selanjutnya · No. 5 →
Reaktivitas di Vue 3 — Paham ref dan reactive Supaya Data Bisa Berubah Otomatis di Layar
→ Baca Artikel Selanjutnya

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux