Middle
Vue.js-də 'watch' və 'computed' nədir və necə işləyirlər?
sobes.tech Süni İntellekt
AI-dan cavab
watch (nəzarətçilər)
- Müəyyən bir reaktiv xüsusiyyətin dəyişməsinə reaksiya vermək üçün istifadə olunur.
- Asinxron əməliyyatlar həyata keçirməyə, icraatı gecikdirməyə və ya mürəkkəb hesablamalar etməyə imkan verir, xüsusiyyətin dəyəri dəyişdikdə.
- Komponent daxilində
watchseçimi ilə konfiqurasiya edilir. handler(emalçı funksiyası),deep(dərin müşahidə, iç içə obyektlər/array-lər üçün) vəimmediate(komponent yaradıldıqda emalçı funksiyanı icra etmək) parametrlərinə sahib ola bilər.
Misal:
watch: {
// `firstName` xüsusiyyətindəki dəyişiklikləri müşahidə edir
firstName(newValue, oldValue) {
console.log(`Ad ${oldValue} dən ${newValue} ə dəyişdi`);
},
// `userInfo` obyektini dərindən müşahidə edir
userInfo: {
handler(newValue, oldValue) {
console.log('İstifadəçi haqqında məlumat dəyişdi.');
},
deep: true
}
}
computed (hesablanan xüsusiyyətlər)
- Başqa məlumatlara bağlı reaktiv məlumatları deklarativ şəkildə yaratmaq üçün istifadə olunur.
- Nəticə keşdə saxlanılır və onun reaktiv asılılıqları dəyişənə qədər saxlanılır.
- Lazily hesablanır, yalnız ona müraciət edildikdə.
- Komponent daxilində
computedseçimi ilə konfiqurasiya edilir. - Dəyər qaytarmalıdır.
Misal:
computed: {
// `firstName` və `lastName` əsasında tam adı hesablayır
fullName() {
return `${this.firstName} ${this.lastName}`;
},
// İstifadəçi siyahısını filtrləyir
filteredUsers() {
return this.users.filter(user => user.isActive);
}
}
Əsas fərqlər
| Xüsusiyyət | watch | computed |
|---|---|---|
| Məqsəd | Bir xüsusiyyətin dəyişməsinə reaksiya vermək | Asılı məlumatları hesablamaq |
| Keş | Yox | Bəli (asılılıqlara görə) |
| Lazily | Yox | Bəli |
| Dəyər | Yox (yan təsirlər yerinə yetirir) | Bəli (hesablanmış dəyəri qaytarır) |
| Asinxron | Bəli | Yox |
| Sintaksis | Funksiyaları olan obyekt | Dəyər qaytaran funksiyaları olan obyekt |
computed istifadə edərək digər məlumatlardan törədilmiş reaktiv məlumatlar əldə edin. watch istifadə edərək, reaktiv xüsusiyyətin dəyəri dəyişdikdə yan təsirləri (məsələn, API çağırışları, DOM dəyişiklikləri) həyata keçirin və ya daha mürəkkəb məntiq reaksiyaları icra edin.