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!

VueJS - Computed Properties

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?

  1. Sederhana: Mereka menjaga template Anda bersih dan mudah dibaca.
  2. Kinerja: Vue menyimpan hasilnya dalam cache dan hanya menghitung ulang saat dependensi berubah.
  3. 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