React - 基礎
React - 基礎
前言
學習 React 中最重要的角色「Babel」,Babel 是 Javascript 的編譯器,有了 Babel 就能更方便順暢的使用 React
React - 基礎環境引入
- Babel
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script>
- 瀏覽器不認識 ES6,依靠 Babel 把 ES6 轉成 ES5
- 瀏覽器不認識 jsx,依靠 Babel 把 jsx 轉成 js
- 可以更流暢的編碼
- React 核心庫
<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
- React 擴展庫(讓 React 幫你操作 DOM)
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
React 起手式
首先建立一個 HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14<!-- 先準備一個容器 -->
<div id="container"></div>
<!-- 引入 React 核心庫 -->
<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
<!-- 引入 React DOM,用來讓 React 操作 DOM -->
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
<!-- 引入 Babel,用來將 jsx 轉成 js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script>
<!-- 這裡一定要寫 type="text/babel" -->
<script type="text/babel">
</script>並在 script 內編寫虛擬 DOM
1
2
3
4
5
6// 1. 首先創建虛擬 DOM
const VDOM = {
<h1 id="test">Hello world</h1>
}
// 2. 渲染虛擬 DOM 到頁面
ReactDOM.render( VDOM, document.getElementById('container') )畫面呈現
React - jsx 語法規則 與 必須知道的地方
這時候 HTML 添加樣式
1
2
3
4
5<style>
.bg-hexschool {
background: #69F0AE;
}
</style>script 內將內容用變數的方式展現
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25// 1. 宣告變數
const myId = "test"
const myData = "Hello world"
// 2. 建創虛擬 DOM
const VDOM = (
// 虛擬 DOM 只能有一個根標籤
<div>
{/* jsx 語法範例如下 */}
{/* class 要改成 className */}
{/* style 要用 {{ key=value }} 包起來,並採用駝峰命名法 */}
<h1 id={ myId }
className="bg-hexschool"
style={{ fontSize:'20px' }}>
{/* JS 表達式都要用 {} 包起來,包含註解 */}
{ myData }
</h1>
<p>虛擬 DOM 只能用一個標籤包起來</p>
{/* 標籤需要閉合,例如最後面加 "/" */}
<input type="text"/>
</div>
// <p>這個沒有被包起來,會報錯</p>
)
// 3. 渲染虛擬 DOM 到頁面
ReactDOM.render( VDOM, document.getElementById('container') )畫面呈現
總結 jsx 語法規則
- 定義虛擬 DOM 時,不要寫引號。
- 標籤中混入 JS 表達式要用
{}
包起來。 - 樣式的類名指定不要用
class
,要用className
。 - 內聯樣式,要用
style={{ key=value }}
的形式去寫。- key 如果像是
font-size
,要改成駝峰命名fontSize
。 - value 需要用引號包起來。
- key 如果像是
- 虛擬 DOM 必須只有一個根標籤
- 標籤必須閉合
- 標籤首字母
- 如果小寫開頭,則將把標籤轉為 HTML 中同名元素,如果 HTML 中無該標籤同名元素,則報錯。
- 如果大寫開頭,React 就去渲染對應的組件,如果組件沒有定義,則報錯