我对React比较陌生; 如果这是一个非常天真的问题,请道歉.
有什么技术优势browserHistory使它更适合hashHistory?例如,使用History API是否会提高性能/效率?
虽然这是以额外的服务器配置为代价并且需要通过basename对不同服务器的基本URL进行硬编码或配置,但是文档声明browserHistory是推荐的.
hashHistory但是,"只是工作",无论提供文件的基本URL如何.无需服务器配置.捆绑您的应用程序,从服务器上的任何URL /路径托管它,很好.
如果文档进一步解释为什么browserHistory推荐它,即使它涉及更多的复杂性,这可能是好的.
在某些情况下,hashHistory很好 - 除非您开始处理需要知道原始请求的完整URL的服务器端逻辑.
浏览器不会在任何HTTP请求中发送URL的#hash部分.
因此,当用户请求页面时,服务器端(即NodeJS)不知道URL中的#hash是什么.
一个很好的例子是用户试图加载需要登录的页面(通过oAuth等).在用户进入单独的网站进行身份验证之前,您的应用程序服务器端会告诉身份验证供应商在成功登录后将用户重定向到哪个URL(通常是由于大多数网站执行此操作所请求的原始URL).如果您要使用hashHistory - 服务器端只知道#符号之前的位,并将用户重定向到应用程序的主页,而不是用户想要加载的子页面.
我希望这是有道理的.
小智 4
browserHistory 优于 hashHistory 的原因之一是它更适合部署和生产。hashHistory 通过在 url 末尾添加唯一键来“工作”,并通过使用这些键来跟踪当前会话来为此创建“历史记录”。
browserHistory 没有 # 看起来更干净,但是为了进行此设置,您需要配置您的服务器,以便它可以处理您打算提供的 URL。
希望有帮助!
| 归档时间: |
|
| 查看次数: |
5680 次 |
| 最近记录: |