为什么在 react history createHashHistory 上为每个路径附加 /#?
Why on react history createHashHistory appends /# for each path?
我有一个具有此历史配置的应用程序:
import { createHashHistory } from 'history';
import { ConnectedRouter } from 'connected-react-router';
const history = createHashHistory({
hashType: 'slash',
});
...
<ConnectedRouter history={history}>
<App />
</ConnectedRouter>
但是我的所有路线都附加了 /#
例如:localhost:8080/
变为:localhost:8080/#/
我已经尝试将我的软件包更新为 this question say,但没有成功。
唯一有效的方法是将 createHashHistory
更改为 createBrowserHistory
,但我不确定它们之间有什么区别,以及为什么 createHashHistory
附加了 /#
]
使用 hashHistory,它会产生 url 之类的
http://yourwebsite.net/#page/xxx
使用 browserHistory,它会产生 url 之类的
http://yourwebsite.net/page/xxx
使用哪一个?在现实世界的产品中,主要使用 browserHistory。经验法则是 "if you are using a dynamic server that can handle dynamic URLs then you need to use the BrowserRouter component but if you are using a server that only serves static files then a HashRouter component is what to be used in this case."
在您的代码中,hashType: 'slash' 只是默认值。
我有一个具有此历史配置的应用程序:
import { createHashHistory } from 'history';
import { ConnectedRouter } from 'connected-react-router';
const history = createHashHistory({
hashType: 'slash',
});
...
<ConnectedRouter history={history}>
<App />
</ConnectedRouter>
但是我的所有路线都附加了 /#
例如:localhost:8080/
变为:localhost:8080/#/
我已经尝试将我的软件包更新为 this question say,但没有成功。
唯一有效的方法是将 createHashHistory
更改为 createBrowserHistory
,但我不确定它们之间有什么区别,以及为什么 createHashHistory
附加了 /#
]
使用 hashHistory,它会产生 url 之类的 http://yourwebsite.net/#page/xxx
使用 browserHistory,它会产生 url 之类的 http://yourwebsite.net/page/xxx
使用哪一个?在现实世界的产品中,主要使用 browserHistory。经验法则是 "if you are using a dynamic server that can handle dynamic URLs then you need to use the BrowserRouter component but if you are using a server that only serves static files then a HashRouter component is what to be used in this case."
在您的代码中,hashType: 'slash' 只是默认值。