react-router提供了三種方式來實現路由,並無默認的路由,須要在聲明路由的時候,顯式指定所使用的路由。react
//v1.x <Router/> //v2.0.0 // hash history import { hashHistory } from 'react-router' <Router history={hashHistory} />
官方推薦使用browserHistorynginx
使用hashHistory,瀏覽器的url是這樣的:/#/user/liuna?_k=adseisexpress
使用browserHistory,瀏覽器的url是這樣的:/user/liuna瀏覽器
這樣看起來固然是browerHistory更好一些,可是它須要server端支持。bash
使用hashHistory時,由於有 # 的存在,瀏覽器不會發送request,react-router 本身根據 url 去 render 相應的模塊。react-router
使用browserHistory時,從 / 到 /user/liuna, 瀏覽器會向server發送request,因此server要作特殊請求,好比用的 express 的話,你須要 handle 全部的路由 app.get('*', (req, res) => { ... })
,使用了 nginx 的話,nginx也要作相應的配置。app
若是隻是靜態頁面,就不須要用browserHistory,直接hashHistory就行了。ui