Ana içeriğe atla

Mala Anlatır Gibi React — 10: Yeni Özellikler ve Hooklar / React 19

Mala Anlatır Gibi React — 10: Yeni Özellikler ve Hooklar / React 19

React 19 çıkmasıyla beraber, yeni özellikler ve hooklar geldi.

Artık head etiketlerini kullanabileceğiz. Yani direkt component’a <title> Burak Behlül </title> diye yazıp, kullanacağız.

Bunun harici nextjs kullananlar bilir, artık ‘use client’, ‘use server’ özelliği de React’da geldi.

React’da memoization’ı elle yapmaya son. Bu durumda, useMemo(), useCallback(), memo() gibi hookları kullanmayacağız. React kendisi yönetecek.

(Görsel, I.)

Bunun yanında Promise’ı çözen ve bir hook getirmişler. Kullanımı şöyle:

import { use, Suspense } from 'react'
use(()=> {})
use(()=> fetch(URL).then().catch())

Yanıtı beklemek <Suspense>:

<Suspense fallback="Yükleniyor...">
// code
</Suspense>

Ayrıca, use() hook’u, useContext yerine geçiyor, bakalım:

useContext(themeContext)

use(themeContext)

Provider kalkıyor:

<ThemeContext.Provider value="dark">

</ThemeContext.Provider>

// Yeni özellik

<ThemeContext value="dark">

</ThemeContext>

forwardRef() kullanımı kalktı, sadece useRef() kullanacağız:

// eski 
const myInput = forwardRef({placeholder, ref}) => {
return <input placeholder={placeholder} ref={ref} />
}

// yeni
function MyInput({placeholder, ref}) {
return <input placeholder={placeholder} ref={ref} />
}

<MyInput ref={ref} />

Gelen birçok özelliği React’ın kendi sitesinden görebilirsiniz, ve gelen diğer hooklar şöyle sırasıyla, server actions:

useFormState(): Bir formun mevcut durumunu takip etmek için kullanılır:

import { useFormState } from "react"

const state = useFormState()

return (
<form action="/api/submit" method="post">
<label>
Adınız:
<input type="text" name="name" />
</label>
<button type="submit" disabled={state?.pending}>
{state?.pending ? "Gönderiliyor..." : "Gönder"}
</button>
{state?.error && <p>Hata: {state.error.message}</p>}
</form>

useFormStatus(), useFormState ile aynıdır.

useActionState(): bir React Server Action’ın durumunu izlemek için kullanılır:

"use client"

import { useActionState } from "react"

async function submitForm(data) {
"use server"
console.log("Form verileri:", data);
}

export default function MyForm() {
const state = useActionState(submitForm);

return (
<form action={submitForm} method="post">
<label>
Kullanıcı Adı:
<input type="text" name="username" />
</label>
<button type="submit" disabled={state?.pending}>
{state?.pending ? "Gönderiliyor..." : "Gönder"}
</button>
{state?.error && <p>Hata: {state.error.message}</p>}
</form>

)
}

useOptimistic(): Kullanıcıdan bir işlem beklemeden önce UI’yi güncellemenize olanak tanır.

Örneğin, bir liste öğesi silindiğinde, önce kullanıcı arayüzünden silinir, ardından sunucuya istek yapılır. Örnek olarak:

"use client"

import { useOptimistic } from "react"

export default function OptimisticExample() {
const [items, setItems] = useOptimistic(
["Item 1", "Item 2", "Item 3"],
(items, newItem) => [...items, newItem]
)

async function addItem(newItem) {
setItems(newItem) // UI hemen güncellenir
await fetch("/api/add-item", {
method: "POST",
body: JSON.stringify({ item: newItem }),
})
}

return (
<div>
<ul>
{items.map((item, index) => (
<li key={index}>{item}</li>
))}
</ul>
<button onClick={() => addItem(`Item ${items.length + 1}`)}>Ekle</button>
</div>

)
}

Özellikler bu kadardı. React’ın kendi sitesinden güncellemeleri takip edebilirsiniz. React 19 güncellemelerini detaylı bakmak için ise basınız.

Herkese iyi kodlamalar!

Yorumlar

Bu blogdaki popüler yayınlar

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...

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...

Kürtler ve Medler

KÜRTLER VE MEDLER Kürt Tarihçilerin çoğu kendini Medlere dayandırır. Kürt dilinin gelişmesinde Medlerin rol oynadığını söylerler. (Minorsky - Kürtler, İslam Ansiklopedisi, VI. cilt, s. 1089-1114) Ve Medlerin torunlarıdır. (Amir Hassanpour - Kürdistanda Milliyetçilik ve Dil; s. 120.) » Kürtlerin tek kurduğu ulusal devlet olarak Medler İmparatorluğunu kabul ederler. (Wadie Jwaideh - Kürt Miliyetçiliğinin Tarihi , Kökenleri ve Gelişimi, s. 17.) » Ve bazı Kürt Tarihçilerde şöyle savunur: “bütün tarih boyunca Medleri Kürtlerden ayrı gösterecek bir hadise bulamazsınız.." (Zinnar Silopi - Doza Kurdistan; s. 9.) » Medler proto-Kürt’tür. (Philip Kreyenbroek & Christine Allison - Kürt Kimliği ve Kültürü, s. 25.) » “Dolaylı değil doğrudan Kürtlerin Medlerle bağlantıları vardır.” (Ali Hüseyin Kerim - Balkan Yarımadasında Kürtler, s. 49.) Medlerin İmparatorluğunu yıkan, Perslerdi. (William Aegleton - Mehabad Kürt Cumhuriyeti; s. 18.) Ve şunu söylemektedirler: Medler yıkıldık...