Fast Refresh

Hızlı Yenileme, React bileşenlerinizde yapılan düzenlemeler hakkında size anlık geri bildirim sağlayan bir Next.js özelliğidir. Hızlı Yenileme, 9.4 veya daha yeni sürümlerdeki tüm Next.js uygulamalarında varsayılan olarak etkindir. Next.js Hızlı Yenileme etkinleştirildiğinde, çoğu düzenleme bileşen durumunu kaybetmeden bir saniye içinde görünür olmalıdır.

How It Works

Error Resilience

Syntax Errors

Geliştirme sırasında bir sözdizimi hatası yaparsanız, bunu düzeltebilir ve dosyayı tekrar kaydedebilirsiniz. Hata otomatik olarak kaybolur, böylece uygulamayı yeniden yüklemeniz gerekmez. Bileşen durumunu kaybetmezsiniz.

Runtime Errors

Bileşeninizin içinde çalışma zamanı hatasına yol açan bir hata yaparsanız, bağlamsal bir kaplama ile karşılaşacaksınız. Hatayı düzeltmek, uygulamayı yeniden yüklemeden yer paylaşımını otomatik olarak kapatacaktır.

Render sırasında hata oluşmadıysa bileşen durumu korunacaktır. Render sırasında hata oluştuysa, React güncellenmiş kodu kullanarak uygulamanızı yeniden yükleyecektir.

Uygulamanızda hata sınırlarıvarsa (üretimde zarif hatalar için iyi bir fikirdir), bir işleme hatasından sonra bir sonraki düzenlemede yeniden oluşturmayı deneyeceklerdir. Bu, bir hata sınırına sahip olmanın her zaman kök uygulama durumuna sıfırlanmanızı önleyebileceği anlamına gelir. Ancak hata sınırlarının çok ayrıntılı olmaması gerektiğini unutmayın. Bunlar React tarafından üretimde kullanılır ve her zaman bilinçli olarak tasarlanmalıdır.

Limitations

Hızlı Yenileme, düzenlediğiniz bileşendeki yerel React durumunu korumaya çalışır, ancak bunu yapmak güvenliyse. İşte bir dosyadaki her düzenlemede yerel durumun sıfırlandığını görmenizin birkaç nedeni:

Kod tabanınızın daha büyük bir kısmı fonksiyon bileşenlerine ve Hook'lara geçtikçe, durumun daha fazla durumda korunmasını bekleyebilirsiniz.

Tips

Fast Refresh and Hooks

Mümkün olduğunda Hızlı Yenileme, düzenlemeler arasında bileşeninizin durumunu korumaya çalışır. Özellikle, useState ve useRef, argümanlarını veya Hook çağrılarının sırasını değiştirmediğiniz sürece önceki değerlerini korur.

Bağımlılıkları olan kancalar - örneğin useEffect, useMemo ve useCallback- Hızlı Yenileme sırasında herzaman güncellenecektir. Hızlı Yenileme gerçekleşirken bağımlılık listeleri göz ardı edilecektir.

Örneğin, useMemo(() => x * 2, [x]) adresiniuseMemo(() => x * 10, [x]) olarak düzenlediğinizde, x (bağımlılık) değişmemiş olsa bile yeniden çalışacaktır. Eğer React bunu yapmasaydı, düzenlemeniz ekrana yansımazdı!

Bazen bu beklenmedik sonuçlara yol açabilir. Örneğin, boş bir bağımlılık dizisine sahip bir useEffectbile Hızlı Yenileme sırasında bir kez yeniden çalışacaktır.

Ancak, Hızlı Yenileme olmasa bile useEffect 'un ara sıra yeniden çalıştırılmasına dayanıklı kod yazmak iyi bir uygulamadır. Bu, daha sonra yeni bağımlılıklar eklemenizi kolaylaştıracaktır ve etkinleştirmenizi şiddetle tavsiye ettiğimiz React Strict Mode tarafından zorlanmaktadır.