[英]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 是一個庫,其次,當您說它有一個服務器時,這意味着它是一個開發服務器,用於在您在本地處理它時查看結果(意味着當您構建應用程序時,您需要實時查看它的外觀)。 它不用於生產用途或包含在構建輸出中。 現在假設您的應用程序已准備好並且您想要部署它,然后您運行一個構建命令,它會為您執行以下操作
您將在服務器上部署您的應用程序,以便客戶端可以訪問它
我不需要在 express 上提供靜態文件,解釋如下
在現代網站中,我們不必使用視圖,因為 react 進入圖片並處理用戶與之交互的客戶端 UI,所以您是對的,我們不必在 express 中使用靜態文件不再,但是如果您有一個必須使用它的用例,那么您可以使用它,沒有人會阻止您這樣做
最后,您也可以擁有自己的節點 js 服務器,前端也將使用它,不是用於視圖,而是用於存儲在數據庫中的數據,您想要獲取並將其顯示給用戶
React 本身只是創建靜態 html-css-js 文件,但出於測試目的,它們還包含了這種方便的方式(localhost:3000 管道)來查看構建的文件。 從技術上講,您不需要使用它,只需使用構建腳本,然后設置一個快速服務器來提供“構建”文件夾中的文件,它會做同樣的事情。
關於客戶端路由,基本上發生的是整個頁面被客戶端下載,它使用 url 框中的值來顯示或切換到某些屏幕。 這就是為什么它被稱為“單頁應用程序”的原因,您使用所有靜態代碼預先向客戶端提供單個頁面。 將此與 express-ejs 進行比較,您可以根據地址有條件地提供靜態代碼。
查看CRA 的文檔以獲取有關部署的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.