簡體   English   中英

Create-React-App 是它自己的服務器嗎?

[英]Is Create-React-App a Server Of It's Own?

我對 NodeJs 和 Express 非常有經驗,但我是 ReactJS 的初學者。

我通常使用 ejs 並像這樣在 Express 上部署我的服務器並路由服務器端。

app.get("/", (req, res) => res.render("index.ejs");
app.get("/contact", (req, res) => res.render("contact.ejs", { data: data });

像這樣的東西。

但是,在使用 React(創建反應應用程序)時,我發現自己根本沒有使用 express 進行路由,而只提供 API。

Create React App 顯然已經有一個服務器(默認為 localhost:3000),我可以直接在那里執行客戶端路由。

我應該在客戶端框架 React 上部署我的服務器嗎?

我什至不需要在 express 上提供靜態文件。

希望你能理解我,謝謝你的幫助:)

首先,react 是一個庫,其次,當您說它有一個服務器時,這意味着它是一個開發服務器,用於在您在本地處理它時查看結果(意味着當您構建應用程序時,您需要實時查看它的外觀)。 它不用於生產用途或包含在構建輸出中。 現在假設您的應用程序已准備好並且您想要部署它,然后您運行一個構建命令,它會為您執行以下操作

  • 轉譯 JS 代碼
  • 捆綁代碼和資產
  • 對資產使用緩存破壞技術
  • 刪除死代碼

您將在服務器上部署您的應用程序,以便客戶端可以訪問它

我不需要在 express 上提供靜態文件,解釋如下

在現代網站中,我們不必使用視圖,因為 react 進入圖片並處理用戶與之交互的客戶端 UI,所以您是對的,我們不必在 express 中使用靜態文件不再,但是如果您有一個必須使用它的用例,那么您可以使用它,沒有人會阻止您這樣做

最后,您也可以擁有自己的節點 js 服務器,前端也將使用它,不是用於視圖,而是用於存儲在數據庫中的數據,您想要獲取並將其顯示給用戶

React 本身只是創建靜態 html-css-js 文件,但出於測試目的,它們還包含了這種方便的方式(localhost:3000 管道)來查看構建的文件。 從技術上講,您不需要使用它,只需使用構建腳本,然后設置一個快速服務器來提供“構建”文件夾中的文件,它會做同樣的事情。

關於客戶端路由,基本上發生的是整個頁面被客戶端下載,它使用 url 框中的值來顯示或切換到某些屏幕。 這就是為什么它被稱為“單頁應用程序”的原因,您使用所有靜態代碼預先向客戶端提供單個頁面。 將此與 express-ejs 進行比較,您可以根據地址有條件地提供靜態代碼。

查看CRA 的文檔以獲取有關部署的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM