Ana içeriğe atla

Mala Anlatır Gibi React — 3: React.memo, useMemo, useCallback

Mala Anlatır Gibi React — 3: React.memo, useMemo, useCallback

React (Resim, 1.)

useMemo, hesaplama açısından maliyetli işlemleri tekrarlamadan kaçınmak için kullanılır. Bir değer veya hesaplama işlemi, bağımlılık olarak belirlenen değişkenler değişmediği sürece önbelleğe alınır. Bu sayede, gereksiz yere tekrar hesaplama yapılmaz ve bileşenin performansı artar.

Nasıl çalışır?

import React, { useMemo } from 'react';
function Ornek({ num }) {
const expensiveComputation = useMemo(() => {
console.log("Başlıyor...");
return num * 2;
}, [num]);
return <div>{expensiveComputation}</div>;
}

useCallback, bir fonksiyonu bağımlılıklarına göre önbelleğe almak için kullanılır. Bu sayede, fonksiyon her render'da yeniden oluşturulmaz. Özellikle, alt bileşenlere prop olarak fonksiyon geçerken faydalıdır, çünkü her render'da yeni bir fonksiyon oluşturulursa, alt bileşenler tekrar render olabilir.

Nasıl çalışır?

import React, { useCallback } from 'react';

function Ornek({ onButtonClick }) {
const handleClick = useCallback(() => {
console.log("Button tıklandı!");
}, [onButtonClick]);
return <button onClick={handleClick}>Click me</button>;
}

Yukarıdaki örnekte, handleClick, onButtonClick değişmediği sürece önbelleğe alınır. Bu, gereksiz render'ları önler ve performansı artırır.

React.memo, bir bileşeni "hafıza"da tutarak, props değişmediği sürece tekrar render olmasını önler. Bu, fonksiyonel bileşenlerin gereksiz yere tekrar render edilmesini engelleyerek performansı artırır.

Nasıl çalışır?

import React from 'react';
const MyComponent = React.memo(function MyComponent({ text }) {
console.log("Render edildi...");
return <div>{text}</div>;
});
function Ornek({ text }) {
return <MyComponent text={text} />;
}

Ornek bileşeni ne kadar render edilirse edilsin, text değişmediği sürece MyComponent tekrar render edilmez. Bu, performansı artırmak için güçlü bir yöntemdir.

Yorumlar

Bu blogdaki popüler yayınlar

Yıldırım Beyazıd ve Emir Timurlenk Savaşı

YILDIRIM BEYAZID VE EMİR TİMUR LENK SAVAŞI Ankara Savaşı (28 Temmuz 1402) Cengiz Han'ın vârisi olma iddiası ile çıkan Emir Timur. Beyazı'dın egemen olmasını kabul etmiyor. Onu küçümsüyor. Timur'un tahtını ele geçirmek için isyan başlatan   ve Timur Hindistan seferinden gelince bizzat kendisi tarafından kovulan Diyarbakır Beyi İlhan Ahmet Celâyir, Osmanlı'ya sığınmıştı. Epey Timur ve Beyazıd'ın arası gergindi. Fakat Timur kendi ırkından, dininden olan Osmanlı’ya saldırmak istemiyordu.   Timur’a tabî olan Mutahharten’ın ailesini Bursa’ya esir olarak gönderen Beyazid ile Timur’un arası açılmıştı.   “ Timur, kendisini sadece dünya üzerinde ulaşabileceği yere kadar hırsını doyurmak için Allah tarafından gönderilen “Allah’ın kulu” olarak değil, Türk halkının da gerçek ve tek temsilcisi olarak görüyordu. Yörüklerin bol paçalı şalvarları içinde, başında yüksek keçe başlığı ile tam bir Türk gibi giyinirdi.. Sarayı’nda sadece Türkçe konuşulur ve Türkçe yazı yazılır...

Türkiye, Filistin ve Araplar: Kıbrıs Sorunu

 Türkiye, Filistin ve Araplar: Kıbrıs Sorunu Bu konu, Filistin’in şuanki devlet başkanı olan Mahmut Abbas’ın, Rum Yönetimi’ni desteklemesiyle başlamıyor. Irak, 1957'de Yunanistan Devleti’yle görüşüp Kıbrıs’la ilgili ortak hareket kararı almışlardır. Aynı yılın Aralık ayı’nda gerçekleşen Birleşmiş Milletler toplantısında Kıbrıs Sorunu’nda Türkiye’ye karşı oy kullanırlar. Irak bununla da sınırlı kalmaz, Yunan desteğini almasıyla birlikte Türkiye’ye karşı Petrol borcunu da ödemez. (Musul Vilayeti’den gelen %10'luk Petrol geliri.) Ayrıca Türkiye’nin çoğu Projesine de karşı çıkar. Komünist Sovyetler Birliği yanlısı bir devlet kuran Suriye ve Mısır (Birleşik Arap Cumhuriyeti), Türkiye’ye karşı bir rakip hâline gelirken, Sovyetlerin Türkiye’yi kıstırma politikasına destek verirler. Türkiye bu durumda İsrail’le ilişkilerini sıkılaştırır fakat Türkiye bu durumda bile suçlu hâline gelir. Hiçbir konu da Türkiye’yi desteklemeyen ve Türkleri yok etmek için gâvuru-Yahudi’yi bile destekleyen...

Filistin’in iki yüzü: PKK ve ASALA

  Filistin’in iki yüzü: PKK ve ASALA Diyeceksiniz ki: “ Ama insanlar ölüyor, yazık değil mi! Ne acımasızsın! ” falan filan.. Hayır efendim, hayır! Elbette çocukların ölmesine üzülüyorum, bende bir insanım lâkin FKÖ’nün eğittiği PKK’nın kaç Türk çocuğunun canını aldığını ez mi geçiceğiz? Burada Suriye’nin PKK’ya verdiği desteği yazmayacağım çünkü zâten blogu’mda “ Sosyalist Bedevî: Esad ailesi, atalarının izinde ” diye bir yazı yazıp detaylıca anlatmıştım. Ayrıca FKÖ’nün kurucularından ve Filistin devlet başkanı Mahmut Abbas hakkında da burada bahsetmeyeceğiz. Çünkü daha önce bahsetmiştik, bakınız: “ Solcu bir Bedevî: Mahmud Abbas ” Gelgelelim, Filistin ve PKK ilişkilerine, şöyle anlatayım: PKK, Suriye-Filistin-Lübnan kampların’da eğitim görmüştü. PKK, Suriye Hükûmeti tarafından Bekaa Vadisi’ne yerleştirilmişti. Burada yetişmişler burada militanlaşmışlardı. Bizzat büyük Türkiye dostu (!) Yaser Arafat tarafından desteklenmişlerdi. (1) İsrail’e karşı operasyonlar da kullanılmışla...