avatar
·2 dk okuma
Reference ve Primitive Tipler

Reference ve Primitive Tipler

Javascript Reference ve Primitive Types, React geliştirme sürecinde çok önemli bir konudur. Bu kavramlar, React'de veri türlerinin nasıl kullanılacağını ve veriler arasındaki farkları anlamanıza yardımcı olur.

Primitive Types, temel veri türleridir ve değer ataması yapılırken değerin kendisi atanır. Örneğin, bir değişken içinde bir sayı değeri tutulursa, bu sayı değeri kendisi atanır ve değişkenin içindeki değer değişmez.

Javascript Reference Types, nesne, dizi gibi veri türleridir ve değer ataması yapılırken referans atanır. Yani, değişkenin içindeki değer değişebilir ve bu değişiklik diğer değişkenlere de yansıyabilir.

React'de, bu veri türleri kullanılırken dikkat etmemiz gereken önemli noktalar vardır. Örneğin, state ve props verileri için mutable veri türleri (nesne, dizi gibi) kullanılmalıdır, ancak sayı, metin veya boolean gibi primitive veri türleri için bu durum geçerli değildir.

Aşağıdaki örnek, Javascript'de Reference ve Primitive Types (Referans ve Basit Türler) arasındaki farkı gösterir.

// Primitive Type: Number
let primitiveNum = 10;
let primitiveNum2 = primitiveNum;

primitiveNum2 = 20;
console.log(primitiveNum); // 10
console.log(primitiveNum2); // 20

// Reference Type: Object
let object = {value: 10};
let object2 = object;

object2.value = 20;
console.log(object.value); // 20
console.log(object2.value); // 20

Bu örnekte, primitiveNum değişkeni basit bir tür olan Number türünde tanımlanır ve primitiveNum2 değişkenine atanır. object ise, object2'ye atanır ve value property'si atanır. Primitive türler, atama işlemi sonucu yeni bir değer oluştururlar. Ancak, reference türler ise, atama işlemi sonucu aynı nesnenin referansını içerir ve her iki değişken de aynı nesnenin değerine erişebilir.

Burada Reference Type sorununu spread operatörü kullanılarak çözebiliriz:

// Reference Type: Object
let object = {value: 10};
let object2 = {...object};

object2.value = 20;
console.log(object.value); // 10
console.log(object2.value); // 20

Burada, object2 için spread operatörü kullanılarak object nesnesinin kopyası oluşturuldu. Böylece, her iki değişken de farklı nesnelere referans eder ve değer değiştirilirken birbirlerine etkilemezler.

React içinde bu iki veri tipi de kullanılabilir. Primitive tipler, component state ve props verileri olarak saklanabilir. Bunlar, component’lerin verilerinin değişmesi sonucu render edilmelerini tetikler. Reference tipler ise, component’ler arasında veri paylaşımı için kullanılabilir.