react-router: Why the preference for browserHistory over hashHistory?

后端 未结 3 928
青春惊慌失措
青春惊慌失措 2021-02-02 01:28

I\'m relatively new to React; apologies if this is a really naive question.

What are the technical advantages to browserHistory that make it prefer

3条回答
  •  情话喂你
    2021-02-02 01:55

    In some cases hashHistory is fine - except when you start dealing with server-side logic that needs to know a full URL of the original request.

    Browsers do not send the #hash part of URL in any of HTTP requests.

    Therefore server-side (i.e. NodeJS) would not know what #hash was in the URL when user requested a page.

    A good example is user trying to load a page that requires a login (via oAuth etc.). Before user is taken to a separate website for authentication, you app's server-side would tell the authentication vendor what URL redirect user to after a successful login (usually it is to the original URL requested as most websites do this). If you were to use hashHistory - server-side would know only the bits before # symbol and would redirect user to the main page of your app and not a sub-page that user wanted to load.

    I hope that makes sense.

提交回复
热议问题