React-router(3)BrowserRouter 和 HashRouter(哈希地址和普通地址)
2018-03-04 22:10
519 查看
3、BrowserRouter 和 HashRouter
前两节的DEMO,都是 HashRouter,而非 BrowserRouter ,二者有所不同。以下解释的前提是你要懂什么叫 hash 地址,hash 地址就是指 # 号后面的 url。
假如有一个 Link 标签,点击后跳转到
/abc/def。
BrowserRouter:
http://localhost:8080/abc/def
HashRouter:
http://localhost:8080/#/abc/def
如果有服务器端的动态支持,建议使用
BrowserRouter,否则建议使用
HashRouter。
原因在于,如果是单纯的静态文件,假如路径从
/切换到
/a后,此时刷新页面,页面将无法正常访问。
二者的替换方法很简单,我们在引入
react-router-dom时,如以下:
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
将
BrowserRouter修改为
HashRouter就可以了,基本不需要修改其他东西。
因为写服务器文件还比较麻烦,因此在之后的 DEMO 中,我们将主要使用 HashRouter 而不是 BrowserRouter。
相关文章推荐
- react-router 4.0 下服务器如何配合BrowserRouter/hashBrowserRouter
- 浅谈react-router HashRouter和BrowserRouter的使用
- react-router HashRouter和BrowserRouter的使用
- React-router 中的BrowserRouter 和 HashRouter
- react-router HashRouter和BrowserRouter的使用
- react-router hashHistory&browserHistory
- 整理的react相关的一些学习地址,包括 react-router、redux、webpack、flux
- react.js的两种路由方式:HashRouter
- 【React-Router】关于browserHistory出现did not match any routes的问题
- react-router browserHistory刷新页面404问题解决方法
- 【react-router】hashhistory 与 browserhistory有什么区别
- react实战--antd、react-router-dom v4 解决菜单和地址同步问题
- react-router 4.0 下服务器如何配合BrowserRouter
- ReactJs Router 路由地址跳转方式带参数
- [React] React Router: hashHistory vs browserHistory
- [react-router] hashHistory 和 browserHistory 的区别
- React Js Router 获取地址栏url参数
- 哈希(hash) 之 hash的插入和查找(链地址法)
- 哈希(hash) 之插入和查找(链地址法)
- 基于react-router的单页应用