avatar
·2 dk okuma
React Optimizasyon Teknikleri: Çalışma Mantığı, Güncellemeler ve Sanal DOM

React Optimizasyon Teknikleri: Çalışma Mantığı, Güncellemeler ve Sanal DOM

React, modern web uygulamaları geliştirmenin en popüler yollarından biridir. Bu yazıda, React'ın çalışma mantığını, bileşenlerin ne zaman güncellendiğini, Sanal DOM ile olan ilişkisini ve bu güncellemeleri optimize etmek için kullanılan useCallback, React.memo, ve useMemo gibi hook'ları inceleyeceğiz.

React'ın Çalışma Mantığı ve Bileşen Güncellemeleri

React, bileşen tabanlı bir yapı kullanır ve her bileşen kendi durumuna sahip olabilir. Bileşenin durumu veya özellikleri değiştiğinde, bileşen yeniden render olur. Bu güncellemeler, kullanıcı arayüzünün daima güncel ve etkileşimli olmasını sağlar.

Sanal DOM (Virtual DOM)

React'ın performansı, Sanal DOM kavramı ile sağlanır. Sanal DOM, gerçek DOM'un hafif bir kopyasıdır ve değişiklikler öncelikle Sanal DOM üzerinde gerçekleştirilir.

Gerçek DOM'a uygulanan değişiklikler oldukça maliyetli olabilir. React, Sanal DOM üzerinde değişiklikleri hızlı bir şekilde hesaplar, ardından gerçek DOM üzerinde yalnızca gerekli değişiklikleri yapar.

Optimizasyon Teknikleri

React, performansı artırmak ve gereksiz render'ları önlemek için birkaç önemli hook ve metod sunar.

-React.memo

React.memo, bileşenin yalnızca özellikleri değiştiğinde yeniden render olmasını sağlar.

Örnek:

const MyComponent = React.memo((props) => {
  return <div>{props.name}</div>;
});

MyComponent bileşeni yalnızca props.name değiştiğinde yeniden render olur.

-useCallback

useCallback hook'u, gereksiz fonksiyon yeniden oluşturmalarını önlemek için kullanılır. Aynı fonksiyon referansını korur, böylece bileşenlerin gereksiz yere yeniden render olmalarını engeller.

Örnek:

const MyComponent = (props) => {
  const handleClick = useCallback(() => {
    console.log('Tıklandı');
  }, []);

  return <button onClick={handleClick}>Tıkla</button>;
};

-useMemo

useMemo hook'u, pahalı hesaplamaların gereksiz yere tekrar tekrar yapılmasını önler.

Örnek:

const ExpensiveComponent = (props) => {
  const computedValue = useMemo(() => {
    // Burada pahalı bir hesaplama yapılır
  }, [props.input]);

  return <div>{computedValue}</div>;
};

Sonuç

React'ın arkasındaki çalışma mantığı ve optimizasyon teknikleri, uygulamanızın hem kullanıcı deneyimini hem de performansını artırabilir. React.memo, useCallback, ve useMemo gibi araçlar, geliştiricilere bileşenlerin ne zaman ve nasıl güncelleneceğini daha hassas bir şekilde kontrol etme olanağı sunar. Uygulamanızın ihtiyaçlarına uygun olarak bu tekniklerden yararlanmak, daha hızlı ve etkili bir kullanıcı arayüzü oluşturmanıza yardımcı olabilir.