React-router 配置browserHistory

Posted laolinghunwbfullstack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React-router 配置browserHistory相关的知识,希望对你有一定的参考价值。

  browserHistory是使用React Router的应用推荐的history,它使用浏览器重的History API用于处理URl

 

     可以通过设置webpack.config.js 中的devServer,设置如下

 devServer: {
        historyApiFallback:{
            index:‘src/index.html‘
        },
    }

     实际开发用browserHistory而不用hashHostory(可以直接用,不用在服务器配置):

       browserHistory 其实使用的是 HTML5 的 History API,浏览器提供相应的接口来修改浏览器的历史记录;而 hashHistory 是通过改变地址后面的 hash 来改变浏览器的历史记录;

        History API 提供了 pushState() 和 replaceState() 方法来增加或替换历史记录。而 hash 没有相应的方法,所以并没有替换历史记录的功能。但 react-router 通过 polyfill 实现了此功能,具体实现没有看,好像是使用 sessionStorage。

另一个原因是 hash 部分并不会被浏览器发送到服务端,也就是说不管是请求 http://domain.com/index.html#foo 还是 http://domain.com/index.html#bar ,服务只知道请求了 index.html 并不知道 hash 部分的细节。而 History API 需要服务端支持,这样服务端能获取请求细节。       

注明:(绿字部分引用作为记录学习,不是本人写的)

以上是关于React-router 配置browserHistory的主要内容,如果未能解决你的问题,请参考以下文章

React Router 4 如何在函数内以编程方式重定向? [复制]

react-router 组件式配置与对象式配置小区别

在 react-router 中配置应用程序的基本名称

A13 React+AntDesign 路由配置 react-router5.1.2

react-router 学习笔记

react-router 学习笔记