React介紹1

初探React簡介& JSX語法

Jacy Chu
Sep 5, 2023

此篇文章參考 SuoChan 阿關技術筆記

React介紹

React 是一個專注於 UI(View)的 JavaScript 函式庫(Library)。

「框架」與「函式庫」的差異

使用「框架」的話,框架具有控制權,而身為這份軟體的開發者,開發者需要依照框架的設計把功能填上,填完的之後,程式便會照開發者的意思運作了;「函式庫」則是不同概念,它像是一個彈藥庫,裡面藏有各種武器供你使用,開發者有控制權去決定怎麼使用它們,甚至不使用。

把UI拆分成各個元件顯示的組合即為組件化開發。一個大網頁拆分成很多小小的獨立組件,再將編寫好的組件拼成一個完整的網頁,讓開發者可以重複使用這些組件,不必重複寫程式。

React.js 的兩大重點

  1. 宣告式 Declarative

在 React.js 中的 View 是採用宣告的方式並使用 Virtual DOM 的概念來進行綁定和渲染。它會在資料有變更時更有效率的自動更新並渲染 (Render)所有有產生變動的元件。

補充說明:Vue也有 Virtual DOM,概念一樣不過背後diff演算法不同。

2. 元件式開發 Component-Based

React.js 是以元件為基礎來做開發的,因此開發者可以自行定義不同的元件並設定每個元件不同的狀態(state),以及透過傳送給子元件(props)的方式來進行資料的傳遞。基於這樣的元件基礎開發模式之下,開發者就可以將網站中會重複利用的東西(像是按鈕等)定義成一個元件,並針對不同用途或功能去做設定資料(像是按鈕上面的文字)。

建立新專案

打開終端機,先將位置移至Desktop,輸入:

npx create-react-app my-react-app

創建一個名為 my-react-app 的 React 應用。

cd my-react-app

npm start

此時瀏覽器的URL為 http://localhost:3000,並出現這個畫面。

看一下 index.js檔案

ReactDOM 是整個 React.js App 的進入點。App 所有的元件或參數都是由這個函式來進行渲染,目前綁定在一個 idrootdiv 標籤。

JSX語法

JavaScript XML,是一個 JavaScript 的語法擴充,格式比較像是模版語言,可以在寫 React 的時候透過此語法來描述使用者介面的外觀,JSX看上去很像HTML。JSX與HTML最大的不同在於開發者可以在HTML中加入邏輯或者是動態變數。

截圖出處

另一範例:

截圖出處

使用 JSX 語法就可以將 UI 畫面和程式邏輯撰寫在一起(也就是結合 HTML 標籤和 JavaScript 邏輯),以減少程式碼的複雜程度和維護時的便利性。

JSX語法是特殊的語法擴充,所以一般的瀏覽器是沒辦法辨識JSX語法的。
這時候需要像是 Babel 等類似工具來轉譯成瀏覽器可以理解的JavaScript。
備註:使用 create-react-app 創建專案時,已有 Babel 等轉譯的設定所以可以直接使用。
  • 使用 {} 花括號去包 JavaScript Expression(表達式)
  • 由於 class 是保留字,所以在JSX中要改為 className
  • CSS 中的屬性要使用駝峰式命名之外,在撰寫 style 的時候也必須使用 JavaScript 的物件格式。
  • 根節點只能一個
React.js 的 v16.2.0 開始提供了 Fragment 的方法來解決必須要有一個根節點的問題
  • 在 JSX 中添加註釋使用 {/* */}

To be continued…

--

--

Jacy Chu
Jacy Chu

Written by Jacy Chu

Front End Developer | 📍Taipei

No responses yet