getir.com-react-tailwind
getir.com-react-tailwind copied to clipboard
Improvement: Better use of lazy initialize state for Campaigns Container
Şu anki halinde, sayfayı initial render olarak boş array'i mapliyor. İlk renderdan sonra useEffect devreye girip json'dan gelen Banners datasını state'e atıyor. Bu da 2. render'ı tetikliyor. Güncelleme yaptığım yöntemle 2 kez render etmesini engellemek için state'in içerisine direkt json'dan gelen veriyi dolduruyoruz.
Detaylı bilgi: https://kentcdodds.com/blog/use-state-lazy-initialization-and-function-updates
api requesti simüle ediyordum aslında orada sonuçta isteği gidip alması için bir süre geçecek her türlü :) belki useMemo kullanılabilir?
useEffect'in olayı tam olarak isteği gidip alması için geçen bir süre olarak tanımlanamaz. Yani siz state'i initialize ederken de api request atıp response'u direkt state'e yazabilirsiniz. Bu önerilmiyor çünkü state oluşturmak sync bir metod ve state oluşturulana kadar render'ı blocklamaya gerek yok. Söylediğiniz gibi useMemo şu anki durumda güzel bir kullanım yeri olurdu. Kodu incelerken response datasını useEffect'te attığınızı görünce yazmak istedim. Videonuz varsa izlemedim o yüzden fikrinizi tam bilmiyordum. Elinize sağlık. Güzel bir çalışma olmuş.