Örnek sorular
Vue Reactivity SystemZorluk 1
Vue 3'ün Composition API'sinde bir ref'in mevcut değerini nasıl okursun?
- aDoğrudan eriş, ref'ler düz değişken gibi davranır
- b
.value property'sine eriş✓ - cFonksiyon olarak çağır:
myRef() - d
myRef.get() kullan
Açıklama:ref(), bir değeri tek bir reaktif .value property'sine sahip bir nesneye sarar. <template> dışında (Vue'nun üst-seviye ref'leri otomatik unwrap ettiği yer) düz JavaScript/<script setup> kodunda .value üzerinden okuma/yazma yapman gerekir.
Vue Reactivity SystemZorluk 1
Bir nesneyi reactive({ count: 0 }) ile reaktif yaptığında, count property'sini nasıl okursun?
- aDoğrudan,
state.count, .value gerekmez✓ - b
.value üzerinden: state.value.count - cBir getter metodu ile:
state.getCount() - dÖnce destructure etmen gerekir
Açıklama:reactive(), .value içeren bir sarmalayıcı değil, nesnenin kendisini saran bir Proxy döndürür. Property'lere düz bir nesnede olduğu gibi doğrudan erişilir ve değiştirilir.
Vue Reactivity SystemZorluk 1
reactive()'e kıyasla ref() genelde hangi değer türü için önerilir?
- aYalnızca diziler
- bYalnızca DOM elemanları
- cPrimitifler, nesneler için de çalışır✓
- dYalnızca fonksiyonlar
Açıklama:reactive() yalnızca nesneler/diziler/Map/Set üzerinde çalışır (Proxy tabanlı izlemesi bir hedef nesneye ihtiyaç duyar) — sayı gibi bir primitifi tek başına reaktif yapamaz. ref() her değer türüyle çalışır, bu yüzden özellikle primitifler için genel amaçlı varsayılandır.
Vue Reactivity SystemZorluk 1
Varsayılan olarak, computed(() => ...) tarafından döndürülen değer yazılabilir mi?
- aEvet, her zaman, tıpkı bir
ref gibi - bYalnızca
<template> içinde - cYalnızca
reactive() ile sarılırsa - dHayır, sadece getter'lı computed salt okunurdur✓
Açıklama:computed(getter), salt okunur bir ref üretir; dev modda .value'a atama yapmak bir uyarı loglar ve hiçbir etkisi olmaz. Yazılabilir yapmak için, çıplak bir getter fonksiyonu yerine get/set içeren bir nesne geçirirsin.
Vue Reactivity SystemZorluk 1
Bir <template> bloğunda, <script setup>'ta tanımlanan üst-seviye bir ref'i kullanmak için .value yazman gerekir mi?
- aEvet, her zaman
- bHayır, üst-seviye ref'ler template'te otomatik unwrap edilir✓
- cYalnızca nesne tutan ref'ler için
- dYalnızca primitif tutan ref'ler için
Açıklama:Vue'nun template derleyicisi, <script setup>'tan dışa aktarılan üst-seviye binding olan ref'leri otomatik olarak unwrap eder — {{ count.value }} değil {{ count }} yazarsın. Genel olarak iç içe nesne property'leri template'lerde otomatik unwrap edilmez; ancak bir ref, metin interpolasyonunun son değeri olduğunda özel olarak unwrap edilir. Otomatik unwrap düz JavaScript'te de geçerli değildir.
Vue Reactivity SystemZorluk 1
watch()'un tek bir reaktif kaynağı gözlemlemesi için minimum gereken argüman nedir?
- aSadece bir callback fonksiyonu — Vue kaynağı otomatik çıkarır
- bDOM elemanını tanımlayan bir CSS seçici string'i
- cİzlenecek bir kaynak artı bir callback fonksiyonu✓
- dHiçbir şey —
watch() tüm component'i otomatik gözlemler
Açıklama:watch(source, callback), ne izleneceğini açıkça belirtmeni gerektirir — bir ref, bir getter fonksiyonu ile erişilen reactive nesne property'si, ya da kaynaklardan oluşan bir dizi — bunun aksine watchEffect, callback'i içinde okuduğu her reaktif state'i otomatik izler.