建立React專案 – React 白話文運動 08

更新於 2024/12/13閱讀時間約 7 分鐘


前言

前一篇文章介紹了三個名詞,分別是:Babel 是什麼?Webpack 是什麼?Npm 是什麼?

這一篇則是會手把手建立 React 專案,包含:建置環境、建立 React 專案、啟動專案、如何使用 React 擴充套件。

建置環境

在建立一個 React App 有一切工具是需要先從網路上下載的,這些工具在前幾篇文章都有介紹過。

Node.js

Node.js 裡面有內建的 npm 服務,可以提供我們快速下載 React 套件或是其他的套件。

安裝React的工具 Create React App 就是需要將 JavaScript 指令在安裝在電腦上運作

來到官網,右上角可以選擇語言,有支援繁體中文介面

  • LTS:是一個穩定的版本,由官方長期維護,通常持續30個月以上
  • Current:有最新功能,較不穩定

如果要確認是否有安裝成功,不管是 Window、MacOS、Linux,皆可以打開終端機(terminal)輸入以下指令,就能知道是否有安裝完成。

node -v

建立React專案

方式一:官網 CRA 指令建置

Node環境建置好之後,再來就是建置我們第一個 React 專案,這邊我偏好使用React官網的教學流程來教學,雖然也有其他快速建置專案的方法。

當 Node.js 確定安裝成功之後,在 terminal 輸入以下的指令,就可以在對應的位子建立一個 my-app 的資料夾,裡面放了對應的檔案以及資料夾。

npx create-react-app my-app

以下是資料夾的結構,my-app 資料夾中會有三個資料夾以及三個檔案

其中 node_modules 裡面會放置各種的套件,透過 npm install 安裝的套件也會放置在這個資料夾,package.json 則是會針對這個專案進行一些設定。

/my-app
-/public
-/node_modules
-/src
-package.json
-README.md
-package-lock.json

啟動專案

建置完成專案之後,要如何啟動專案呢?

透過下列兩行指令就可以啟動,第一行的指令為進入 my-app 資料夾,第二行指令為啟動此份專案。

cd my-app
npm start

如果成功執行之後,跑出這個畫面,代表我們已經成功建立自己的第一隻 React 專案。

建立React專案-Hogan與小波-Hogan.BLab

建立React專案-Hogan與小波-Hogan.BLab

方法二:自建環境

搭環境也可以使用自建的方式,包含前一篇介紹的 Webpack | Npm | Babel,並且全程都是使用指令的方式,將所需要的功能加入並且建置。


Webpack 是什麼?

Webpack 是一個模組化打包工具,其主要功能是將專案中的各種檔案,包括 JavaScript、CSS、LESS、SCSS、JSX 等,整合成一個或多個最終的檔案。這樣的模組化打包有助於提高開發效率,尤其在大型專案中,我們可以將功能模組化拆分,進而實現程式碼重用和測試的便利性。

Webpack 不僅僅是一個打包工具,它還提供了一系列強大的功能,例如程式碼拆分(Code Splitting),這允許將程式碼拆分成多個區塊,僅在需要時載入,以提升頁面載入速度。同時,模組化(Modulize)是 Webpack 中的核心概念,通過將大型功能拆分成小型檔案和函式,實現程式碼的結構清晰,易於維護和測試。


Npm 是什麼?

Npm 是世界上最大的軟體註冊中心。 來自各大洲的開源開發人員使用 npm 來共享和借用軟體模組包,許多公司也使用 npm 來管理私人開發。

Npm 全名為 Node Package Manager,我們可以透過 Node 裡面的 npm cli 工具進行套件的安裝以及管理。

舉例來說,如果想要使用 React 套件,只需要在終端機(terminal)輸入指令,npm 就會自動從Registry 中尋找 react 這個前端框架,並且下載至 node_modules 資料夾中。


Babel 是什麼?

Babel 是一個不可或缺的工具。它的主要功能是將最新版本的 JavaScript 語法,尤其是 ECMAScript 6(ES6)的語法,轉換成瀏覽器能夠理解和執行的舊版本 JavaScript。

ES6 引入了許多強大的功能,如箭頭函數、模板字串、解構賦值等,但由於瀏覽器的支援度不同,為了確保跨瀏覽器相容性,我們需要使用 Babel 進行編譯。

另外,當開發使用 JSX 語法的 React 應用程式時,同樣需要 Babel 進行編譯。JSX 是一種 JavaScript 語法擴充,用來描述 React 元件的結構。它使得在 JavaScript 中撰寫類似 HTML 的標記成為可能,但瀏覽器無法直接執行 JSX 語法,因此需要 Babel 將其轉換成純 JavaScript。


React建置補充說明

安裝 React Developer Tools (瀏覽器擴充功能)

React Developer Tools 是一個 Google Chrome 瀏覽器的擴充工具,用瀏覽器連線到 React Developer Tools,然後進行安裝(按右上角的”加到CHROME”),最後在瀏覽器中確定有啟用它。

可以用來找出錯誤訊息,而且可以觀察 React 應用程式在網頁上 JavaScript 執行的一些 log。


安裝與設定 React 開發工具

這裡使用的開發工具是 VS Code,這是一套免費的 Editor,你可以連到 Visual Studio Code 下載並且安裝適合你的電腦作業系統的版本。

VS Code 並不是那種一安裝好就有完整功能的工具,它需要要安裝額外不少的擴充套件才能用來開發 React。


結語

React白話文運動已經將近十篇了,卻才開始建立與啟動 React 專案。

之所以這麼晚才針對啟動專案做教學,是因為學習 React 前,就有滿多觀念是相當重要的,包含 npm、node.js、webpack、babel 都是未來有可能會用到的工具。

未來的文章會繼續講解 React 相關知識與技術。

如果有任何建議與疑問也歡迎留言!


備註

目前文章已移至  建立React專案 – React 白話文運動 08

未來文章一併更新於此網站 Hogan.B Lab

並且包含多語系 繁體中文英文日文簡體中文

觀看分類:React 白話文運動其他系列


React 白話文運動系列

Babel & Webpack & NPM – React 白話文運動 07

React JSX – React 白話文運動 06

React 運作原理 – React 白話文運動 05

JavaScript 高階函式 – React 白話文運動 04

JavaScript Async Await – React 白話文運動 03

JavaScript ES6 Object – React 白話文運動 02

JavaScript ES6 – React 白話文運動 01

希望能透過「React框架白話文運動」系列文章,利用口語化語表以及簡單的程式碼範例,能讓讀者更明白React的各種應用。 系列文章會講述以下: 1. 了解 ES6 JavaScript 語法 2. 了解 React 的運作原理 3. 了解 React 的狀態管理 4. 使用 React Hook管理狀態並且存取資料
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
前言這一篇會針對三個名詞做一些解釋,這些名詞是建立 React 專案,需要會的工具,包含了:Babel 是什麼?Webpack 是什麼?Npm 是什麼?當然主要介紹的是使用這些工具的概念,但是還是有其他工具可以做選擇,例如:Npm 之於 Yarn。這一篇會針對三個名詞做一些解釋,這些名詞是建立 R
React 是開發網頁、手機前端最流行的 JavaScript 套件之一。React 由 Meta 開發,使開發人員能夠創建可重覆使用的元件來完成前端頁面。JSX 也是目前我們比較常看到的 React 寫法 ,因此接下來會介紹,JSX 是什麼?JSX 語法以及使用 JSX 建構 React 元件。
React 是開發網頁、手機前端最流行的 JavaScript 套件之一。React 由 Meta 開發。React 並不是一個框架。這是因為它只負責呈現 UI 的元件。不過,React 為 Angular 和 Vue 等框架提供了另一種解決方式,使我們可以與它一起完成覆雜的前端頁面功能。
這一篇會介紹非常重要的 JavaScript 函式概念 - 高階函式(Higher-order function),高階函數是將一個或多個函數作為參數,或將一個函數作為結果返回的函數。在本文中,我們將深入探討什麽是高階函數、使用高階函數的好處以及如何在實際應用中使用高階函數,函式導向是什麼?
歡迎來到 React 白話文運動第三篇,今天我們將深入探討 JavaScript 中的非同步操作,並介紹兩個重要的關鍵字:Async 與 Await。在這篇文章中,我們將透過實例演示非同步操作的概念,以及如何使用 Promise、Fetch、Async 和 Await 來更有效地處理非同步程式。
今天會接續介紹 JS ES6 其他新穎的語法,物件解構(Object Destructuring)物件語法強化(Object Literal Enhancement)陣列解構(Array Destructuring)延展運算子(Spread Operator)。
前言這一篇會針對三個名詞做一些解釋,這些名詞是建立 React 專案,需要會的工具,包含了:Babel 是什麼?Webpack 是什麼?Npm 是什麼?當然主要介紹的是使用這些工具的概念,但是還是有其他工具可以做選擇,例如:Npm 之於 Yarn。這一篇會針對三個名詞做一些解釋,這些名詞是建立 R
React 是開發網頁、手機前端最流行的 JavaScript 套件之一。React 由 Meta 開發,使開發人員能夠創建可重覆使用的元件來完成前端頁面。JSX 也是目前我們比較常看到的 React 寫法 ,因此接下來會介紹,JSX 是什麼?JSX 語法以及使用 JSX 建構 React 元件。
React 是開發網頁、手機前端最流行的 JavaScript 套件之一。React 由 Meta 開發。React 並不是一個框架。這是因為它只負責呈現 UI 的元件。不過,React 為 Angular 和 Vue 等框架提供了另一種解決方式,使我們可以與它一起完成覆雜的前端頁面功能。
這一篇會介紹非常重要的 JavaScript 函式概念 - 高階函式(Higher-order function),高階函數是將一個或多個函數作為參數,或將一個函數作為結果返回的函數。在本文中,我們將深入探討什麽是高階函數、使用高階函數的好處以及如何在實際應用中使用高階函數,函式導向是什麼?
歡迎來到 React 白話文運動第三篇,今天我們將深入探討 JavaScript 中的非同步操作,並介紹兩個重要的關鍵字:Async 與 Await。在這篇文章中,我們將透過實例演示非同步操作的概念,以及如何使用 Promise、Fetch、Async 和 Await 來更有效地處理非同步程式。
今天會接續介紹 JS ES6 其他新穎的語法,物件解構(Object Destructuring)物件語法強化(Object Literal Enhancement)陣列解構(Array Destructuring)延展運算子(Spread Operator)。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
本文探討了風險管理的新思維:重點不在於預測具體風險,而在於建立應對未知風險的韌性。透過加州防震的案例,說明了「準備」比「預測」更為重要的道理,並提供了實務應用建議。討論了如何在個人實踐這種思維。
Thumbnail
本篇分享如何建立健康邊界感的相關資訊。文章中還評析了賴婷婷的《複利領導》一書,探討如何藉由重複簡單的行為來培養領導力及個人成長。
Thumbnail
在軍退一年多後,本文分享了我在生活型態與健康管理方面的調整與適應。從早上起床喝水到每日的營養補充,再到最近開始的慢跑訓練,這些變化不僅改善了我的生活質量,還使我逐漸適應了新的生活節奏。文章中還提到了一些跑步技巧,幫助避免受傷並提升運動的舒適性。希望這些經驗能對正面臨類似境遇的人有所啟發。
Thumbnail
此筆記僅以個人理解方式記錄 環境準備 我們這邊以 Bootstrap 5 的卡片元件來展示,要準備的有: Bootstrap 5 CDN Card(卡片) template React CDN React React 起手式,引用 CDN、綁定 root、指定渲染 dom。 <
Thumbnail
在日常生活中,我們常常沉浸在自己的思緒中,固守在自己的思想旋律中無法自拔。這就像播放著舊黑膠唱片,一遍又一遍地在相同的溝槽中循環。然而,我們往往忽視了他人迷人的世界,每個人都擁有獨特的生活經歷、思想和想法。與他們建立聯繫就像探索一片未開拓的領域或沉浸在異國文化中,就像是第一次造訪大溪地。每個人都
Thumbnail
養寵物狗是一件充滿喜悅的事情,但要與牠們建立良好的關係卻需要花費大量的時間和努力。今天我歸納了三點讓大家輕鬆地了解如何與狗狗保持良好關係,以及如何建立信任與互動。 重點一:建立信任 建立信任的第一步是照顧好狗狗,讓牠感到安全舒適。 給狗狗足夠的食物、水和休息時間,以及適當的運動和訓練。 與狗狗建立良
Thumbnail
什麼是整合行銷 (Integrated Marketing) 所謂的整合行銷 (Integrated Marketing) 是建立起一套完整的流程,對我們潛在的買家在各個不同買家旅程,以及各種不同的渠道和他們做溝通的時候,可以傳達一致的訊息,以及企業形象。有時可能又會把整合行銷稱之為 integra
Thumbnail
萬事起頭 這個簡單到不行的極度簡略步驟,卻是一切的基礎
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
本文探討了風險管理的新思維:重點不在於預測具體風險,而在於建立應對未知風險的韌性。透過加州防震的案例,說明了「準備」比「預測」更為重要的道理,並提供了實務應用建議。討論了如何在個人實踐這種思維。
Thumbnail
本篇分享如何建立健康邊界感的相關資訊。文章中還評析了賴婷婷的《複利領導》一書,探討如何藉由重複簡單的行為來培養領導力及個人成長。
Thumbnail
在軍退一年多後,本文分享了我在生活型態與健康管理方面的調整與適應。從早上起床喝水到每日的營養補充,再到最近開始的慢跑訓練,這些變化不僅改善了我的生活質量,還使我逐漸適應了新的生活節奏。文章中還提到了一些跑步技巧,幫助避免受傷並提升運動的舒適性。希望這些經驗能對正面臨類似境遇的人有所啟發。
Thumbnail
此筆記僅以個人理解方式記錄 環境準備 我們這邊以 Bootstrap 5 的卡片元件來展示,要準備的有: Bootstrap 5 CDN Card(卡片) template React CDN React React 起手式,引用 CDN、綁定 root、指定渲染 dom。 <
Thumbnail
在日常生活中,我們常常沉浸在自己的思緒中,固守在自己的思想旋律中無法自拔。這就像播放著舊黑膠唱片,一遍又一遍地在相同的溝槽中循環。然而,我們往往忽視了他人迷人的世界,每個人都擁有獨特的生活經歷、思想和想法。與他們建立聯繫就像探索一片未開拓的領域或沉浸在異國文化中,就像是第一次造訪大溪地。每個人都
Thumbnail
養寵物狗是一件充滿喜悅的事情,但要與牠們建立良好的關係卻需要花費大量的時間和努力。今天我歸納了三點讓大家輕鬆地了解如何與狗狗保持良好關係,以及如何建立信任與互動。 重點一:建立信任 建立信任的第一步是照顧好狗狗,讓牠感到安全舒適。 給狗狗足夠的食物、水和休息時間,以及適當的運動和訓練。 與狗狗建立良
Thumbnail
什麼是整合行銷 (Integrated Marketing) 所謂的整合行銷 (Integrated Marketing) 是建立起一套完整的流程,對我們潛在的買家在各個不同買家旅程,以及各種不同的渠道和他們做溝通的時候,可以傳達一致的訊息,以及企業形象。有時可能又會把整合行銷稱之為 integra
Thumbnail
萬事起頭 這個簡單到不行的極度簡略步驟,卻是一切的基礎