相关疑难解决方法(0)

HashRouter与BrowserRouter

我是编程的新手,如果我阅读官方文档,我会很难理解.

从这里读到了React Router 4

在这篇文章中,作者正在谈论<HashRouter><BrowserRouter>

这就是他提到的

HashRouter基本上它使用URL中的哈希来呈现组件.由于我正在构建一个静态的单页网站,我需要使用它.

BrowserRouter,它使用HTML5历史API来渲染组件.可以通过pushState和replaceState修改历史记录.更多信息可以在这里找到

现在,我没有得到两者的重要性和用例.就像他说可以通过pushState和replaceState修改历史记录时的意思一样,它使用URL中的哈希来呈现组件

虽然BrowserRouter的第一个解释对我来说完全模糊,但关于HashRouter的第二个解释也没有意义,比如为什么有人会在url中使用Hash(#)来渲染组件?

reactjs

52
推荐指数
8
解决办法
4万
查看次数

为什么不在浏览器上运行React生成版本?

我正在尝试使用react的构建工具构建我的反应应用程序.当我尝试"npm start"时,应用程序运行正常.

npm start
Run Code Online (Sandbox Code Playgroud)

http:// localhost:3000 =>我可以访问该应用程序.

在此输入图像描述

但是当我构建应用程序并尝试访问构建文件夹中的"index.html"文件时,它不起作用,我遇到了一个白色的空白屏幕.

npm run build
Run Code Online (Sandbox Code Playgroud)

http://myreact-app/build/index.html =>白色空白屏幕.

这是在运行npm run build之后创建的构建文件夹.

在此输入图像描述

这是index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
    <meta name="theme-color" content="#000000">
    <link rel="manifest" href="/manifest.json">
    <link rel="shortcut icon" href="/favicon.ico">
    <title>React App</title>
    <link href="/static/css/main.9a0fe4f1.css" rel="stylesheet">
  </head>
  <body>
    <noscript>You need to enable JavaScript to run this app.</noscript> 
    <div id="root"></div>
    <script type="text/javascript" src="/static/js/main.46d8cd76.js"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?我无法访问我的apache Web服务器上构建的index.html文件?

reactjs

20
推荐指数
5
解决办法
3万
查看次数

标签 统计

reactjs ×2