replaceState
replaceState ile mevcut geçmiş kaydını değiştirmeyi öğrenirsin.
replaceState nedir?
history.replaceState(state, unused, url) tıpkı pushState gibi aynı üç parametreyi alır; ama geçmişe yeni kayıt eklemez. Bunun yerine mevcut kaydın durumunu ve URL'ini değiştirir.
history.replaceState({page: 'home'}, '', '/home');Sonuç olarak geri düğmesi yine de önceki kayda gider; çünkü replaceState mevcut kaydın yerine yenisini yazar.
pushState ve replaceState farkı
İki yöntem de URL'i ve durumu değiştirir, ama geçmişe etkileri farklıdır.
history.pushState({page: 'a'}, '', '/a');
// geçmiş: [home, a]
history.replaceState({page: 'b'}, '', '/b');
// geçmiş: [home, b]pushState yeni kayıt ekler; geri düğmesi bir önceki kayda gider. replaceState mevcut kaydın yerine yenisini yazar; geçmişe kayıt eklenmez.
Uygulama replaceState ile kaydı güncelle
currentTab değişkenine 'settings' değerini ata. { tab: currentTab } durumuyla, boş başlık ve '/settings' URL'i ile history.replaceState çağır.
Örnek çözümü göster
const currentTab = 'settings';
history.replaceState({ tab: currentTab }, '', '/settings');
Kendini test et
-
replaceState çağrısını tamamla
const state = { tab: 'settings' }; ____;Cevabı göster
const state = { tab: 'settings' }; history.replaceState(state, '', '/settings'); -
replaceState ne zaman pushState yerine kullanılır?
- Yeni bir geçmiş kaydı eklemek istediğinde
- Mevcut kaydı değiştirmek ve geri düğmesinin yeni kayıt eklemesini önlemek istediğinde
- Sayfayı yeniden yüklemek istediğinde
- Geçmişi tamamen silmek istediğinde
Cevabı göster
Mevcut kaydı değiştirmek ve geri düğmesinin yeni kayıt eklemesini önlemek istediğinde — Doğru! replaceState mevcut kaydı günceller, yenisini eklemez.
-
pushState ve replaceState farkı
- pushState
- yeni kayıt ekler
- replaceState
- mevcut kaydı değiştirir
- geri düğmesi
- önceki kayda gider
- state object
- kayıtla saklanan veri