VueJS - Properti Terhitung: Panduan untuk Pemula
Hai teman-teman, bakal superstar Vue.js! Hari ini, kita akan mengemban sebuah perjalanan menarik ke dalam dunia Properti Terhitung di Vue.js. Jangan khawatir jika Anda masih baru dalam programming - saya akan menjadi panduan ramah Anda, dan kita akan berjalan langkah demi langkah. Pada akhir tutorial ini, Anda akan terkesimaskan oleh betapa banyak yang Anda pelajari!
Apa Itu Properti Terhitung?
Bayangkan Anda sedang memanggang kue. Anda memiliki bahan (data), dan Anda mengikuti resep (logika) untuk membuat sesuatu yang lezat (properti terhitung). Dalam Vue.js, properti terhitung seperti resep kue ajaib yang secara otomatis diperbarui saat bahan-bahannya berubah!
Mari kita mulai dengan contoh sederhana:
<template>
<div>
<p>Nama Depan: {{ firstName }}</p>
<p>Nama Belakang: {{ lastName }}</p>
<p>Nama Lengkap: {{ fullName }}</p>
</div>
</template>
<script>
export default {
data() {
return {
firstName: 'John',
lastName: 'Doe'
}
},
computed: {
fullName() {
return this.firstName + ' ' + this.lastName
}
}
}
</script>
Dalam contoh ini, fullName
adalah properti terhitung kami. Itu seperti resep cerdas yang menggabungkan firstName
dan lastName
untuk memberikan nama lengkap. Bagian terbaik? Setiap kali firstName
atau lastName
berubah, fullName
akan diperbarui secara otomatis!
Mengapa Menggunakan Properti Terhitung?
- Sederhana: Mereka menjaga template Anda bersih dan mudah dibaca.
- Kinerja: Vue menyimpan hasilnya dalam cache dan hanya menghitung ulang saat dependensi berubah.
- Andalan: Mereka diperbarui secara otomatis saat dependensinya berubah.
Properti Terhitung vs Metode
"Tunggu sebentar," Anda mungkin berkata, "bisakah kita hanya menggunakan metode saja?" Pertanyaan bagus! mari kita bandingkan:
<template>
<div>
<p>Terhitung: {{ reversedMessage }}</p>
<p>Metode: {{ reverseMessage() }}</p>
</div>
</template>
<script>
export default {
data() {
return {
message: 'Hello, Vue!'
}
},
computed: {
reversedMessage() {
return this.message.split('').reverse().join('')
}
},
methods: {
reverseMessage() {
return this.message.split('').reverse().join('')
}
}
}
</script>
Baik reversedMessage
dan reverseMessage()
melakukan hal yang sama. Tetapi rahasia utamanya adalah: properti terhitung disimpan dalam cache. Jika message
tidak berubah, reversedMessage
tidak akan menghitung ulang. Itu seperti memiliki asisten super efisien yang mengingat hasil sebelumnya!
Properti Terhitung dengan Dependensi
Properti terhitung menjadi menarik saat mereka bergantung pada beberapa piece data. Mari kita lihat contoh yang lebih kompleks:
<template>
<div>
<input v-model="searchQuery" placeholder="Cari todos">
<ul>
<li v-for="todo in filteredTodos" :key="todo.id">{{ todo.text }}</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
searchQuery: '',
todos: [
{ id: 1, text: 'Belajar Vue', completed: false },
{ id: 2, text: 'Bangun aplikasi', completed: true },
{ id: 3, text: 'Menguasai properti terhitung', completed: false }
]
}
},
computed: {
filteredTodos() {
return this.todos.filter(todo =>
todo.text.toLowerCase().includes(this.searchQuery.toLowerCase())
)
}
}
}
</script>
Di sini, filteredTodos
seperti filter cerdas. Itu memantau baik todos
dan searchQuery
. Saat salah satunya berubah, daftar akan diperbarui secara otomatis. Magic, kan?
Get/Set dalam Properti Terhitung
Sekarang, mari kita naik tingkat! Properti terhitung bisa memiliki baik getter dan setter. Itu seperti memiliki resep dua arah - Anda bisa membaca hasilnya dan mengubah bahan-bahannya!
<template>
<div>
<p>Nama Lengkap: {{ fullName }}</p>
<button @click="changeFullName">Ubah Nama</button>
</div>
</template>
<script>
export default {
data() {
return {
firstName: 'John',
lastName: 'Doe'
}
},
computed: {
fullName: {
get() {
return this.firstName + ' ' + this.lastName
},
set(newValue) {
const names = newValue.split(' ')
this.firstName = names[0]
this.lastName = names[names.length - 1]
}
}
},
methods: {
changeFullName() {
this.fullName = 'Jane Smith'
}
}
}
</script>
Dalam contoh ini, fullName
bukan hanya resep (getter) tetapi juga resep balik (setter). Saat kita mengubah fullName
, itu secara otomatis memperbarui firstName
dan lastName
. Itu seperti memiliki sihir ubah nama!
Metode Properti Terhitung
Mari kitaakhiri dengan tabel metode umum yang Anda dapat gunakan dalam properti terhitung:
Metode | Deskripsi | Contoh |
---|---|---|
filter() |
Membuat array baru dengan elemen yang lolos uji | this.items.filter(item => item.price > 100) |
map() |
Membuat array baru dengan transformasi setiap elemen | this.items.map(item => item.name.toUpperCase()) |
reduce() |
Mengurangi array menjadi nilai tunggal | this.items.reduce((total, item) => total + item.price, 0) |
sort() |
Mengurutkan elemen array | this.items.sort((a, b) => a.price - b.price) |
includes() |
Memeriksa apakah array mengandung elemen tertentu | this.items.includes('apple') |
find() |
Mengembalikan elemen pertama yang lolos uji | this.items.find(item => item.id === 3) |
Ingat, metode ini tidak mengubah array asli, yang sempurna untuk properti terhitung!
Dan begitu juga, para pelajar yang antusias! Anda baru saja menguasai seni properti terhitung di Vue.js. Dari perhitungan sederhana hingga filtering yang kompleks, Anda sekarang memiliki kekuatan untuk membuat aplikasi Vue Anda lebih cerdas dan efisien. Terus latih, terus kode, dan yang paling penting, terus bersenang-senang dengan Vue!
Credits: Image by storyset