【问题标题】:ReactJS vs NodeJS - Why do I need to create both?ReactJS 与 NodeJS - 为什么我需要同时创建两者?
【发布时间】:2019-10-16 09:34:02
【问题描述】:

我知道 React 是前端,NodeJS 是允许 Javascript 代码在浏览器之外运行的后端。我不明白的是(这是在遵循有关设置 React 项目和 NodeJS 项目的在线教程之后)是我必须为每个项目创建一个实例的原因。

例如,在我的 React 项目中,我设法创建了一个网站。但是因为我需要一个后端,所以我决定使用 NodeJS。但是我正在做 NodeJS 教程,我也可以使用 NodeJS 创建一个网站。我很困惑,因为现在,React 和 NodeJS 似乎在做 SAME THING

我以前从未使用过 NodeJS,所以我有点困惑。我的印象是我只会使用 NodeJS 来托管后端,但是在看到我实际上必须使用 NodeJS 创建一个完整的网站之后,我不明白我应该如何一起使用 React 和 NodeJS。

React 和 NodeJS 这两者如何集成在一起以创建一个功能齐全的 Web 应用程序?我还没有在网上看到任何东西可以清楚地分解两者的交互方式。

【问题讨论】:

  • “需要”在这里是一个错位的词。两者都没有内在的需要。你可以有一个没有另一个。
  • Express 等节点框架通常用于渲染视图/模板,但并非必须如此。它可以完全充当 RESTful API,通过来自 React 的 HTTP 调用执行远程 CRUD 操作。
  • NodeJS 后端服务器可以肯定会返回 HTML 作为对 HTTP 请求的响应内容。这将使其本身成为一个完整的网站。不过,所有的 JavaScript 都将在服务器而不是客户端的浏览器上运行。
  • React 使用节点,这就是为什么it's appearing to be that React and NodeJS do the SAME THING.
  • @JessicaWang 如果您使用express-generator 创建了一个项目,那么它既有GET /users 等API 路由,也有渲染视图/模板index。您至少遵循用户路由文件作为创建 API 端点的示例。你可以删除任何你不需要的东西。这是一个更大的问题,很难完全解释。话虽如此,那是正确的文档。

标签: javascript node.js reactjs


【解决方案1】:

NodeJS 只是一个运行时,允许您在浏览器之外运行 javascript 代码。

为了编译和转译 react JS 应用程序,他们使用 webpack 和其他运行在 NodeJS 上的工具。

【讨论】:

  • 你是对的,但你只使用 NodeJS 来运行 Webpack 和 Babel(用于编译、优化和转译)。 React 不直接依赖 nodeJS,但创建过程中涉及的套件部分会。
  • 我想知道 React 本身是否需要 node_modules 中的一些库。我喜欢你的回复,它简洁明了,得到了我想要的分数。所以看起来 React 并不直接需要 node_modules 中的库,但在 React 应用程序构建期间只需要节点模块。
【解决方案2】:

NodeJS 不仅仅是普通的 javascript,它是一个 javascript 运行时,它位于由 Google 提供的名为 V8 的 C++ 引擎之上。 Node 在浏览器之外执行,而 React / Vue / Angular / 等是浏览器内的 javascript 框架。

React 是一个完全独立的动物;它是一个在浏览器中呈现自己的 DOM 的框架。它是一个用于优化 DOM 操作的 javascript 引擎。

虽然前端和后端的开发模式看起来很相似,但它们在做不同的事情。 React 正在处理组件生命周期、应用动态样式规则、处理浏览器内数据以及进行 API 调用。 Node 正在处理来自浏览器的请求,协调对服务器文件系统的访问,管理网络 IO,执行加密评估等。由于这些不同的职责,Node 使用与前端框架不同的依赖项(阅读:节点模块)。

最终,Node 和 React 通过 HTTP 调用(或者不太频繁地通过 WebSocket 或 SOAP 协议)进行通信。

您有必要了解一下 node 在后台是如何工作的。

【讨论】:

    【解决方案3】:

    React 是前端库。它为创建用户界面提供了很好的工具。它创建了一个单页应用程序。这意味着当您打开一个反应应用程序时。它不会重新加载,而且速度非常快。

    虽然您也可以使用 nodejs 和类似把手之类的东西来创建网站。但是该网站将在服务器上呈现,然后提供给用户。但它远不止于此。您想在服务器上做很多事情。比如认证。你希望那部分是安全的。所以你把它保存在服务器上。

    现在回答你问题的最后一部分。

    对于功能齐全的应用程序。您将使用 react 来创建用户界面。和 nodejs 用于创建你的 react 应用程序将调用的 API。

    【讨论】:

      【解决方案4】:

      关键是 react 和任何其他 SPA 库都在客户端(浏览器)上工作。

      React 从服务器 API 获取和使用数据。

      您不需要使用 Node.js 来构建 API。您可以根据自己喜欢的技术使用各种框架。

      如果你对后端不熟悉,你可以使用https://www.npmjs.com/package/http-server来做一个假的API服务,并可以用它来构建前端部分。

      【讨论】:

        【解决方案5】:

        NodeJS 是一个 javascript 框架,它允许您创建一个服务器来使用 Express 或内置库为网站提供服务。它还能够仅使用 NodeJS 构建网站。

        您可以利用 NodeJS 服务器进行服务器端渲染的能力。 https://reactjs.org/docs/react-dom-server.html

        有一个名为 NextJS 的 ReactJS 框架,它具有 ReactJS 组件的服务器端渲染。 https://nextjs.org/#features

        您网站的某些区域可能仅使用 NodeJS 构建,而其他页面则使用 ReactJS 和 NodeJS 后端。但是前端使用 ReactJS,后端使用 NodeJS 更简洁。

        【讨论】:

          【解决方案6】:

          NodeJS 将作为您的后端,而 ReactJS 将创建界面/UI,您可以在其中实际操作您的服务器 (nodeJS)。因此,首先您将编写 NodeJS 服务器或 API。您不需要需要使用 ReactJS 创建与您的节点服务器交互的前端,就像您说您可以使用 NodeJS 通过不同的库创建视图一样。 ReactJS 只是 NodeJS 应用程序前端的众多选择之一。

          【讨论】:

            猜你喜欢
            • 2020-05-06
            • 2022-01-13
            • 1970-01-01
            • 2016-03-12
            • 2016-02-04
            • 2016-05-29
            • 2011-01-11
            • 2012-02-08
            • 1970-01-01
            相关资源
            最近更新 更多