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

閱讀時間約 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
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
在日常生活中,我們常常沉浸在自己的思緒中,固守在自己的思想旋律中無法自拔。這就像播放著舊黑膠唱片,一遍又一遍地在相同的溝槽中循環。然而,我們往往忽視了他人迷人的世界,每個人都擁有獨特的生活經歷、思想和想法。與他們建立聯繫就像探索一片未開拓的領域或沉浸在異國文化中,就像是第一次造訪大溪地。每個人都
Thumbnail
養寵物狗是一件充滿喜悅的事情,但要與牠們建立良好的關係卻需要花費大量的時間和努力。今天我歸納了三點讓大家輕鬆地了解如何與狗狗保持良好關係,以及如何建立信任與互動。 重點一:建立信任 建立信任的第一步是照顧好狗狗,讓牠感到安全舒適。 給狗狗足夠的食物、水和休息時間,以及適當的運動和訓練。 與狗狗建立良
Thumbnail
什麼是整合行銷 (Integrated Marketing) 所謂的整合行銷 (Integrated Marketing) 是建立起一套完整的流程,對我們潛在的買家在各個不同買家旅程,以及各種不同的渠道和他們做溝通的時候,可以傳達一致的訊息,以及企業形象。有時可能又會把整合行銷稱之為 integra
Thumbnail
萬事起頭 這個簡單到不行的極度簡略步驟,卻是一切的基礎
Thumbnail
被動收入一直在投資理財的話題上是很夯的話題,而提及被動收入,一般都會和財務自由扯上關係。而被動收入到底是什麼呢?被動收入又分哪幾種?這篇文章會為你介紹被動收入的基本概念。
Thumbnail
投機角度比較注重股價波動,應該追隨市場情勢,見波動慣性改變或漲勢停滯,就得考慮調整持股,投資角度則不一定要隨市場波動起舞,考慮是否抱股過年,其實就是衡量抵抗市場波動風險的能力
某位近年趨於低調的財經界大前輩說過: 「做投資要悲觀,過人生要樂觀。但一般人卻都反過來。」 其實你在做財務計劃也應該要這樣,預想未來不能太樂觀。 最近看很多人在建立財務計劃,試算,分析都做得很淋漓盡致。但我都發現一個共通的問題, 「對未來估算太樂觀」
國中小即將開學了,相信有不少孩子在假期中生活作息是紊亂的,很多孩子是睡眠時間不固定,而且三餐也不定時, 所以開學前第一首要做的事情就是:調整生活作息。 建立每天作息的韻律節奏,是家庭生活最重要的工作。
Thumbnail
(此文章寫於2019/08/18) 被動收入、財務自由、投資理財等話題近幾年來幾乎是人人都在談,但大多數的人卻一直不得其門而入。即使爬再多的文、上了多少相關課程、還是買了多少銀行理專/理財達人推薦的投資商品後發現,仍然每天過著不自由的生活,而這種為五斗米折腰的日子,也總是看不到何時是個盡頭。 早在很
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
在日常生活中,我們常常沉浸在自己的思緒中,固守在自己的思想旋律中無法自拔。這就像播放著舊黑膠唱片,一遍又一遍地在相同的溝槽中循環。然而,我們往往忽視了他人迷人的世界,每個人都擁有獨特的生活經歷、思想和想法。與他們建立聯繫就像探索一片未開拓的領域或沉浸在異國文化中,就像是第一次造訪大溪地。每個人都
Thumbnail
養寵物狗是一件充滿喜悅的事情,但要與牠們建立良好的關係卻需要花費大量的時間和努力。今天我歸納了三點讓大家輕鬆地了解如何與狗狗保持良好關係,以及如何建立信任與互動。 重點一:建立信任 建立信任的第一步是照顧好狗狗,讓牠感到安全舒適。 給狗狗足夠的食物、水和休息時間,以及適當的運動和訓練。 與狗狗建立良
Thumbnail
什麼是整合行銷 (Integrated Marketing) 所謂的整合行銷 (Integrated Marketing) 是建立起一套完整的流程,對我們潛在的買家在各個不同買家旅程,以及各種不同的渠道和他們做溝通的時候,可以傳達一致的訊息,以及企業形象。有時可能又會把整合行銷稱之為 integra
Thumbnail
萬事起頭 這個簡單到不行的極度簡略步驟,卻是一切的基礎
Thumbnail
被動收入一直在投資理財的話題上是很夯的話題,而提及被動收入,一般都會和財務自由扯上關係。而被動收入到底是什麼呢?被動收入又分哪幾種?這篇文章會為你介紹被動收入的基本概念。
Thumbnail
投機角度比較注重股價波動,應該追隨市場情勢,見波動慣性改變或漲勢停滯,就得考慮調整持股,投資角度則不一定要隨市場波動起舞,考慮是否抱股過年,其實就是衡量抵抗市場波動風險的能力
某位近年趨於低調的財經界大前輩說過: 「做投資要悲觀,過人生要樂觀。但一般人卻都反過來。」 其實你在做財務計劃也應該要這樣,預想未來不能太樂觀。 最近看很多人在建立財務計劃,試算,分析都做得很淋漓盡致。但我都發現一個共通的問題, 「對未來估算太樂觀」
國中小即將開學了,相信有不少孩子在假期中生活作息是紊亂的,很多孩子是睡眠時間不固定,而且三餐也不定時, 所以開學前第一首要做的事情就是:調整生活作息。 建立每天作息的韻律節奏,是家庭生活最重要的工作。
Thumbnail
(此文章寫於2019/08/18) 被動收入、財務自由、投資理財等話題近幾年來幾乎是人人都在談,但大多數的人卻一直不得其門而入。即使爬再多的文、上了多少相關課程、還是買了多少銀行理專/理財達人推薦的投資商品後發現,仍然每天過著不自由的生活,而這種為五斗米折腰的日子,也總是看不到何時是個盡頭。 早在很