replaceState () vs pushState()
Я читал и искал преимущества / недостатки между replaceState()
& pushState()
.
Читайте также Mozilla статьи, а это интересные тест, но до сих пор неясно мне различия.
кто-нибудь хочет объяснить, в чем они отличаются?
2 ответа:
replaceState()
будет изменить URL в браузере (т. е. нажатие кнопки назад не вернет вас обратно)
pushState()
изменит URL-адрес и сохранит старый в истории браузера (т. е. нажатие кнопки Назад приведет вас обратно)
из вашей ссылки
история.replaceState() работает точно так же, как история.pushState() за исключением того, что replaceState() изменяет текущую запись истории вместо о создании нового.
replaceState () особенно полезно, когда вы хотите обновить состояния объекта или URL-адрес текущей записи в ответ на некоторые действие пользователя.
если вы хотите просто хотите обновить запись в истории, используйте
replaceState()
в противном случае использоватьpushState()
, который сохранит старую запись и создаст новую. Они похожи, но оба имеют разные эффекты, поэтому это зависит от того, хотите ли вы заменить или создать новые записи истории.подумайте об этом, как будто я раздаю колоду карт, положив одну карту поверх другой (лицевой стороной вверх), и вы можете взять только верхнюю карту в куче (т. е. последнюю карту, которую я сдал). Скажем, я положил Валет Червей на кучу. Теперь для следующей карты, если я использую
replaceState
, Так что я беру, что Джек Сердечки выключите и положите следующую карту. Количество карт одинаковое, так как мы только что заменили верхнюю карту. Если бы я использовалpushState
вместо этого я бы положил следующую карту поверх валета червей (так что теперь оба существуют в куче, а куча на одну карту выше).замените карты по аналогии с URL-адресами, и вот как изменяется история URL-адресов.