VueJS - Properti Watch: Panduan untuk Pemula

Hai teman, superstar Vue.js masa depan! Hari ini, kita akan melihat salah satu fitur terkuat Vue: Properti Watch. Jangan khawatir jika Anda baru belajar programming – saya akan memandu Anda dalam perjalanan ini langkah demi langkah, seperti yang saya lakukan untuk ribuan murid selama tahun-tahun mengajar saya. Jadi, ambil secangkir kopi (atau teh, jika itu yang Anda sukai), dan mari kita mulai!

VueJS - Watch Property

Apa Itu Properti Watch?

Sebelum kita masuk ke kode, mari kita pahami apa itu Properti Watch. Bayangkan Anda memantau kue kesukaan Anda di dalam oven. Anda memantau secara dekat, siap untuk mengambil tindakan jika kue mulai terbakar atau jika sudah matang sempurna. Itu tepat apa yang dilakukan Properti Watch di Vue.js – itu memantau properti data tertentu dan mereaksi saat properti itu berubah.

Mengapa Menggunakan Properti Watch?

Mungkin Anda bertanya-tanya, "Mengapa kita butuh ini?" Baiklah, mari saya ceritakan kisah pendek. Pernah sekali, saya memiliki murid yang sedang membuat aplikasi cuaca. Dia ingin menampilkan animasi hujan setiap kali cuaca berubah menjadi "basah". Properti Watch sangat cocok untuk hal ini! Itu memungkinkan aplikasinya untuk "memantau" data cuaca dan memicu animasi saat diperlukan.

Sekarang, mari kita lihat bagaimana kita dapat menggunakan fitur kuat ini dalam aplikasi Vue.js kita.

Sintaks Dasar Properti Watch

Berikut adalah struktur dasar bagaimana kita mendefinisikan properti watch:

export default {
data() {
return {
// Properti data Anda di sini
}
},
watch: {
propertyToWatch(newValue, oldValue) {
// Logika Anda di sini
}
}
}

Jangan khawatir jika ini terlihat sedikit membingungkan saat ini. Kita akan membongkar ini dengan beberapa contoh nyata.

Contoh 1: Memantau Properti Sederhana

Mari kita mulai dengan contoh sederhana. Kita akan membuat penghitung yang mencatat pesan setiap kali nilainya berubah.

<template>
<div>
<p>Penghitung: {{ counter }}</p>
<button @click="counter++">Increment</button>
</div>
</template>

<script>
export default {
data() {
return {
counter: 0
}
},
watch: {
counter(newValue, oldValue) {
console.log(`Penghitung berubah dari ${oldValue} ke ${newValue}`)
}
}
}
</script>

Dalam contoh ini:

  1. Kita memiliki properti data counter yang diinisialisasi ke 0.
  2. Ada tombol yang menambahkan nilai penghitung saat ditekan.
  3. Kita memantau properti counter.
  4. Setiap kali counter berubah, fungsi watch kita mencatat pesan dengan nilai lama dan baru.

Coba menambahkan nilai penghitung beberapa kali dan periksa konsol browser Anda. Anda akan melihat pesan mencatat setiap perubahan!

Contoh 2: Memantau Properti Bertingkat

Sekarang, mari kita naik tingkat. Apa bila kita ingin memantau properti yang di dalam objek? Vue.js sudah memberikan solusi untuk kita dengan pemantauan dalam.

<template>
<div>
<p>Nama User: {{ user.name }}</p>
<input v-model="user.name" />
</div>
</template>

<script>
export default {
data() {
return {
user: {
name: 'John Doe'
}
}
},
watch: {
'user.name': {
handler(newName, oldName) {
console.log(`Nama berubah dari ${oldName} ke ${newName}`)
},
deep: true
}
}
}
</script>

Dalam contoh ini:

  1. Kita memiliki objek user dengan properti name.
  2. Kita memantau user.name menggunakan notasi titik.
  3. Kita mengatur deep: true untuk memastikan Vue memantau properti bertingkat.
  4. Fungsi handler mencatat pesan saat nama berubah.

Coba mengubah nama dalam field input dan lihat konsol berisi pesan!

Contoh 3: Memantau Properti Secara Langsung

kadang-kadang, Anda ingin fungsi watch Anda berjalan secara langsung saat objek diciptakan, bukan hanya saat nilai berubah. Mari kita lihat bagaimana kita dapat melakukan itu.

<template>
<div>
<p>Waktu Saat Ini: {{ currentTime }}</p>
</div>
</template>

<script>
export default {
data() {
return {
currentTime: new Date().toLocaleTimeString()
}
},
watch: {
currentTime: {
handler(newTime) {
console.log(`Waktu saat ini ${newTime}`)
},
immediate: true
}
},
created() {
setInterval(() => {
this.currentTime = new Date().toLocaleTimeString()
}, 1000)
}
}
</script>

Dalam contoh ini:

  1. Kita memiliki properti currentTime yang diperbarui setiap detik.
  2. Properti watch kita memiliki immediate: true, jadi itu berjalan saat komponen diciptakan.
  3. Fungsi handler mencatat waktu saat itu berubah.

Anda akan melihat waktu awal dicatat secara langsung, dan kemudian catatan baru setiap detik!

Tabel Metode

Berikut adalah tabel praktis yang menyummarisakan metode yang kita gunakan dalam contoh kita:

Metode Deskripsi
watch Mendefinisikan properti untuk dipantau perubahan
handler Fungsi yang dijalankan saat properti yang dipantau berubah
deep Memungkinkan pemantauan dalam untuk properti bertingkat
immediate menjalankan fungsi watch secara langsung saat objek diciptakan

Kesimpulan

Dan itu adalah dia, murid-murid tercinta! Kita telah mengeksplorasi dunia yang menakjubkan Properti Watch Vue.js. Dari penghitung sederhana hingga objek bertingkat dan pemantauan langsung, Anda sekarang memiliki kekuatan untuk membuat aplikasi Vue.js Anda lebih reaktif dan dinamis.

Ingat, Properti Watch adalah seperti seorang pengawal waspada bagi data Anda. Gunakanlah dengan bijak, dan ia akan melayani Anda dengan baik dalam perjalanan Vue.js Anda. Seperti biasa, cara terbaik untuk belajar adalah dengan melakukan, jadi saya mendorong Anda untuk mencoba contoh ini dan menciptakan sendiri. Siapa tahu? Anda mungkin saja menciptakan hal yang besar!

Happy coding, dan may the Vue be with you! ??‍??‍?

Credits: Image by storyset