- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我读了这个声明:
The BrowserRouter should be used when you have a server that will handle dynamic requests (knows how to respond to any possible URI), while the HashRouter should be used for static websites (can only respond to requests for files that it knows about).
我从 this 得到的.
我不明白它说 BrowserRouter should be used when you have a server that would handle dynamic requests.
我想当你点击一个特定的 Link
(在 React 的情况下),路由器将加载特定的组件,这一切都是在客户端用 Javascript 完成的(基本上用特定的组件代码替换 DOM 中的元素)。
服务器在哪里与上述声明中提到的 BrowserRouter 一起发挥作用?
最佳答案
为 HashRouter 更新:
在哈希路由器的情况下,您的客户端路由如下所示 - ://www.mysite.com/#login
。由于 #
是一个仅限客户端的片段并且从不发送到浏览器,即使用户将其添加为书签,浏览器仍会请求 ://www仅 .mysite.com/
,删除 #login
部分。所以服务器永远不需要被任何动态路径所困扰。虽然这可能看起来更简单,但从消极的方面来看,您最终会失去 #
的传统(和实际)目的,即拥有本地 anchor 。因此,除非您的目标是没有历史记录 API 的旧浏览器,否则应避免使用这种方法。
早些时候:
假设您的 Web 应用部署在 ://www.mysite.com/
上。并且您在 /login
处有一个客户端路由,您可以在该路由上呈现一个处理身份验证的登录组件。因此,当用户首次访问您的页面时,服务器通常会将 index.html
发送到浏览器,它会引导您的 React 应用程序。
然后根据默认组件中的逻辑,例如 App
,您会将用户重定向到 /login
路由,并且登录组件由 react-router 挂载。现在的 URL 是 ://www.mysite.com/login
,到目前为止一切正常!
现在假设用户此时将页面添加为书签并稍后访问它,或者只是单击刷新。浏览器现在将向服务器请求位于 ://www.mysite.com/login
的页面,这是服务器必须发回 index.html
的地方。
事实上,对于单页应用程序(又名 SPA),对于所有客户端路由,服务器必须发回您应用程序的 Bootstrap 文件,即 index.html
。
这就是引号中的语句的意思。您必须将服务器配置为针对任何动态路径发回 index.html。
希望这有帮助:)。
关于javascript - BrowserRouter 与服务器有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46481682/
我想在我的 React 应用程序中使用 BrowserRouter。我已将我最顶层的组件嵌套在 BrowserRouter 标签中,如图所示: import React from 'react'; i
我读了这个声明: The BrowserRouter should be used when you have a server that will handle dynamic requests (
我想使用 basename 来分隔组件。我也有全局 url,所以我最终使用了 3 个 BrowserRouter。这会导致显示多个内容。如果我去/fruit/search,它会同时显示 Homepag
我是一个新手,无法使用react。我正在关注教程React Tutorial创建注册表单。但这样就已经过时了。我试图通过使用浏览器重定向单击链接来重定向到注册、登录和主页。本教程定义的路线如 cons
我目前在我的 app.js 文件中有这个: 在我的 CompOne 中,我想以编程方式导航到 CompTwo。我知道我可以使用 wind
我正在尝试使用 React Idle Timer 在 15 分钟后转到锁定屏幕。 我遇到的问题是重定向页面。我正在使用带有反应的 Electron 和 react BrowserRouter。因此我不
我正在构建一个 Netflix 克隆应用程序,并且正在使用 react-router-dom v5在不同页面之间切换。但是,当我单击 Link标记 Navbar.jsx ,URL 会发生变化,但相应的
在我的项目中,我必须在不更改 url 的情况下从一个组件导航到另一个组件。为此,我使用了 MemoryRouter这按预期工作。但现在同样的想法应该适用于不同的路线,即 /one和 /two .例如,
我正在尝试使用 npm run build 生成的静态index.html 文件以及react-router。 tl;dr 是;我不需要客户端服务器,我希望通过打开位于构建文件夹中的 index.ht
尝试使用 React,我决定测试 typescript 。 代码: import { BrowserRouter } from 'react-router-dom' import history f
我使用的是 React 路由在线类(class)中的以下代码: import { Router, Route, browserHistory } from 'react-router'; ReactD
我正在使用 React-router 版本 5.5.1,并尝试在我的 index.js 文件中使用它: ./src/index.js 14:8-21 'react-router' does not c
这是我第一次尝试 React。我使用 create-react-app 创建了一个项目,然后对于路由,我使用 React Router V4 for web react-router-dom . 这是
我正在从 React Router v5 升级到 v6。当我运行应用程序时,url 中没有基本名称,也没有加载任何内容,当我将/config2 添加到 url 时,一切都会显示出来。我在使用 v5 B
使用 时出现以下错误react-router-dom 版本 6 : Uncaught Error: Invalid hook call. Hooks can only be called inside
我试图了解 react-router-dom (v5) 包的 BrowserRouter 和 Router 之间的区别以及它们之间的区别下面是我的例子。 文档说: BrowserRouter A th
我是编程新手,如果我阅读官方文档,这会让我有点难以理解。 我正在阅读有关 React Router 4 from here 的内容 在这篇文章中,作者谈论的是 和 这就是他提到的: HashRoute
使用HashRouter,路由在所有情况下都能正常工作,但是当使用BrowserRouter时,刷新页面时会显示错误。 这是我封装在 HashRouter 和 BrowserRouter 下的路由代码
这是我的代码: import React from "react"; import ReactDOM from "react-dom"; import Navbar from "./component
这是我的代码: import React from "react"; import ReactDOM from "react-dom"; import Navbar from "./component
我是一名优秀的程序员,十分优秀!