CodeBlanks Logo Icon CodeBlanks

useSharedValue

useSharedValue ile paylaşılan değer öğrenirsin.

useSharedValue

useSharedValue, UI ve JS iş parçacıkları arasında paylaşılan bir değer oluşturur. Bu değer, animasyonun temel durumudur. Örnek: const offset = useSharedValue(0). Değerin başlangıcı 0'dır; sonradan offset.value = 100 ile değiştirilebilir.

Önemli ayrım: offset.value özelliği ile okunur ve yazılır; doğrudan offset = 100 değil. Çünkü offset bir nesnedir, .value ise içindeki gerçek sayıdır. UI iş parçacığı bu değeri izler; her değişim animasyonu tetikler.

Değeri değiştirme

Paylaşılan değeri değiştirmek için .value özelliğine atama yapılır. Örnek: offset.value = 100. Bu atama UI iş parçacığını bilgilendirir; eğer bir animasyonlu stil bu değere bağlıysa, stil yeniden hesaplanır.

Animasyon eklemek için offset.value = withTiming(100) yazılır. Burada withTiming anında 100'e gitmez; belirli bir süre içinde doğrusal olarak gider. Bu, basit atamadan farklı olarak yumuşak bir geçiş sağlar. Animasyon türünü seçmek, hissi belirler.

Uygulama Paylaşılan değer tanımla

useSharedValue'u react-native-reanimated'dan içe aktar. const offset = useSharedValue(0) ile paylaşılan değer tanımla. offset.value = 100 ile ata.

Başlangıç kodu

App.js
import React from 'react';

export function useOffset() {
  // offset'i tanımla ve 100 olarak ata

  return offset;
}

Örnek çözüm

App.js
import React from 'react';
import { useSharedValue } from 'react-native-reanimated';

export function useOffset() {
  const offset = useSharedValue(0);
  offset.value = 100;
  return offset;
}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 useSharedValue parçalarını eşle

Kavram Anlamı
useSharedValue Hook
0 Başlangıç değeri
.value Sayı özelliği
UI thread Değeri izler

2 .value neden kullanılır?

  • Çünkü useSharedValue bir nesne döner
  • Çünkü Animated gereksizdir
  • Çünkü sayı yazılamaz Doğru cevap
  • Çünkü hook kullanılamaz

Açıklama: useSharedValue bir nesne döner; .value ile sayıya erişilir.

3 Değer ataması

Soru
const offset = useSharedValue(0);
offset.____ = 100;
Cevap
const offset = useSharedValue(0);
offset.value = 100;

Açıklama: .value özelliği sayıyı taşır.

İleri seviye bölümündeki tüm dersler