javascript - BrowserRouter 是否使用比 HashRouter 更多的数据/带宽?
问题描述
所以我是一名 iOS 开发者,最近一直在学习一些 React。我现在正在学习路由。目前,我将在 Firebase 托管免费层中托管我的网络应用程序,因此它使用的带宽量是一个真正的问题。
我需要决定是否应该使用 aBrowserRouter
或 a HashRouter
。据我所知BrowserRouter
更好,但作为交换,你放弃了不支持旧版浏览器,我不在乎。
但是,我读过BrowserRouter
每次 URL 更改时都会发出 GET 请求,HashRouter
但不会。
这是否意味着使用BrowserRouter
会更快耗尽我的免费 Firebase 托管带宽?
我的应用将从 Cloud Firestore 获取信息以填充其 UI。这些 GET 请求是否BrowserRouter
让我在数据库中浪费了我的空闲操作?这也是目前的一个担忧。
我正在使用 React v16.13.1、react-router-dom v5.2.0、CoreUI for React v3.0.1 和 Typescript v3.7.5,如果这对你有用的话。提前致谢。
解决方案
但是,我读过 BrowserRouter 每次 URL 更改时都会发出 GET 请求,而 HashRouter 不会。
你好!这不是真的。只要您使用该组件,就会BrowserRouter
禁用 HTML 中生成的标签的默认行为。<a href="..." />
Link
尝试这个:
import React from "react";
import ReactDOM from 'react-dom'
import {BrowserRouter, Link, Route} from "react-router-dom";
const PageOne = () => {
return (
<div>
<h1>Page One</h1>
<Link to={"/pagetwo"}>Page 2</Link>
</div>
)
}
const PageTwo = () => {
return (
<div>
<h1>Page Two</h1>
<Link to={"/"}> Page 1</Link>
</div>
)
}
const App = () => {
return (
<BrowserRouter>
<Route path={"/"} exact component={PageOne}/>
<Route path={"/pagetwo"} component={PageTwo}/>
</BrowserRouter>
)
}
ReactDOM.render(
<App/>,
document.querySelector("#root")
)
检查您的网络流量(通常是 F12 -> 网络)并观察会发生什么!
推荐阅读
- python - 如果我尝试打印第二个元素,则列表索引超出范围
- flutter - 条件满足后如何让卡片自动旋转?
- css - CSS悬停触发垂直滑动动画标题
- nexus3 - Nexus Repo 3 日志记录 - 日志查看器
- mongodb - 如何从android连接到mongo db Realm中的多个集合
- python - 如何使用 cv2 获得圆的半径?
- java - 如何使用 java 流简化这个 for 循环?
- php - 从 php 的错误日志中获取特定时间段的信息
- python - Torch 神经网络收敛速度非常慢
- python - pandas 预计第 153 行有 10 个字段,看到 11,如何再添加一列