Merhabalar.

Bu yazımda aslında şu ana kadar geliştirdiğimiz projelerimiz de kullandığımız bir kavramı daha detaylı anlatmak istiyorum.

React’te “key” prop’u, genellikle liste elemanlarını render ederken kullanılan bir özelliktir. Bu prop, React’in sanal DOM üzerindeki performansını artırmak ve liste elemanları arasındaki değişiklikleri daha etkili bir şekilde takip etmek için oldukça önemlidir.

Herhangi bir liste oluşturduğunuzda, bu liste genellikle bir dizi içinde temsil edilir ve bu dizi içindeki her öğe, ekranda render edilecek bir bileşeni temsil eder. React, bu bileşenleri sırayla render eder, ancak öğeler değişirse, React’in bu değişiklikleri algılaması ve uygun şekilde güncellemesi gerekir.

İşte burada “key” devreye girer. “key” prop’u, her liste öğesine benzersiz bir tanımlayıcı eklemenizi sağlar. Bu tanımlayıcılar, genellikle veritabanından alınan bir ID veya başka bir benzersiz değer olabilir. React, bu “key” değerlerini kullanarak, öğeler arasındaki farkı anlamak ve sadece gerçekten değişen öğeleri güncellemek için daha hızlı bir şekilde hareket eder.

Calculator uygulamamızda bir History listi tutuyorduk. Sonrasında bu listi ekrana yazdırırken her bir p etiketli elemana bir key değeri verdik. Oradaki benzersiz değeri listenin index değerinden elde etmiştik.

<div className={`operation-info info-container ${allState.operationInfoOpen ? 'open' : ''}`}>
                <h4>Operation History</h4>
                {history.map((process, index) => (
                    <p key={index}>{process.count}: {process.num1} {process.operation} {process.num2} = {process.result}</p>
                ))}
            </div>

Bu sayede, eğer listeye yeni bir operasyon eklenirse veya mevcut bir kullanıcı silinirse ya da değiştirilirse, React sadece değişen öğeleri günceller ve geri kalanını dokunmaz.

Key konumuz bu kadardı.

Bir sonraki yazımda görüşmek üzere.


Murat Bilginer
21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.