The sejarah HTML5 spesifikasi unik.
history.pushState()
tidak mengirim popstate
acara atau memuat halaman baru dengan sendirinya. Itu hanya dimaksudkan untuk mendorong negara ke dalam sejarah. Ini adalah fitur "undo" untuk aplikasi satu halaman. Anda harus secara manual mengirim popstate
acara atau menggunakan history.go()
untuk menavigasi ke negara baru. Idenya adalah router dapat mendengarkan popstate
acara dan melakukan navigasi untuk Anda.
Beberapa hal yang perlu diperhatikan:
history.pushState()
dan history.replaceState()
jangan kirim popstate
acara.
history.back()
,, history.forward()
dan tombol kembali dan maju browser melakukan pengiriman popstate
acara.
history.go()
dan history.go(0)
memuat ulang satu halaman penuh dan tidak mengirim popstate
acara.
history.go(-1)
(belakang 1 halaman) dan history.go(1)
(maju 1 halaman) melakukan pengiriman popstate
acara.
Anda dapat menggunakan API riwayat seperti ini untuk mendorong status baru DAN mengirim acara popstate.
history.pushState({message:'New State!'}, 'New Title', '/link');
window.dispatchEvent(new PopStateEvent('popstate', {
bubbles: false,
cancelable: false,
state: history.state
}));
Kemudian dengarkan popstate
acara dengan router.