나는 스스로에게 react-router
을 가르치고 있으며, 이제 다른 페이지로 가기 위해 어떤 방법을 사용해야하는지 궁금합니다.window.location.href와 history.pushState - 어느 것을 사용합니까?
this post (Programmatically navigate using react router)에 따르면 this.props.history.push('/some/path')
으로 다른 페이지로 이동할 수 있습니다.
그러나 나는 window.location.href
과 history.pushState
의 차이점에 대해 잘 모르겠습니다.
내가 이해하는 한, window.location.href = "/blah/blah";
은 브라우저를 새로 고치는 새로운 HTTP 호출을 작성하여 다른 페이지로 안내합니다.
반면에 history.pushState
(및 this.props.history.push('/some/path')
)은을 으로 푸시합니다. 이것은 적절하게 HTTP 참조자를 변경하므로 결과적으로 업데이트는 XMLHttpRequest
입니다. 여기
에서 발췌 한 것입니다 당신이 상태를 변경 한 후 생성 된 XMLHttpRequest의 개체에 대한 HTTP 헤더에 사용됩니다 레퍼러를 변경합니다.
내게는 두 가지 방법으로 새로운 HTTP 호출을하는 것처럼 들립니다. 그렇다면 차이점은 무엇입니까?
모든 조언을 주시면 감사하겠습니다.
PS는
나는 개발자가 다른 페이지로 이동하는 방법을 결정하기 전에, 서버에서 데이터를 얻을 것이 필요 여부를 고려 할 필요가 있다고 생각했다.
서버에서 데이터를 검색해야하는 경우 새 HTTP 호출을하므로 window.location.href
은 이됩니다. 그러나 <HashRouter>
을 사용하거나 속도 향상을 위해 페이지를 새로 고치지 않으려면 좋은 방법이 무엇입니까?
이 질문은 나를이 게시물로 이끌었습니다.
귀하의 조언에 감사드립니다. 그러나, 나는 여전히 "HTTP 헤더에서 사용되는 리퍼러를 history.pushState()가 변경한다는 Mozila의 의사에 대해 100 % 확실하지 않습니다." HTTP 헤더의 리퍼러를 변경하는 것이 새로운 HTTP 호출을하는 것과 관련이 없다고 가정하는 것이 좋습니까? – Hiroki