React.Component
class ShoppingList extends React.Component {
render() {
return (
<div className="shopping-list">
<h1>Shopping List for {this.props.name}</h1>
<ul>
<li>Instagram</li>
<li>WhatsApp</li>
<li>Oculus</li>
</ul>
</div>
);
}
}
// 使用範例:<ShoppingList name="Mark" />
在這裡,ShoppingList 是一個 React 的 component class,或 React component type。Component 會接受名為 props 的參數(「properties」的簡稱),並透過 render 這個方法回傳一個有階層架構的 view 到螢幕上。
render 方法回傳你想在螢幕上看到的描述。React 接收這個描述並展示其結果。其中,render 回傳的是一個 React element,也就是一個 render 內容的輕量描述。
大部分 React 的開發者會使用一種特殊的語法,被稱為「JSX」,因為它讓這些結構寫起來更容易。<div /> 語法在構建時被建立為
也可以不使用JSX,使用 createElement()
return React.createElement('div', {className: 'shopping-list'},
React.createElement('h1', /* ... h1 children ... */),
React.createElement('ul', /* ... ul children ... */)
);
npx create-react-app my-app
cd my-app
npm start
# or
yarn start
Hook 是一個讓你可以使用 React 各項功能的特殊 function
舉例來說,useState 是一個讓你增加 React state 到 function component 的 Hook。
import React, { useState } from 'react';
function Example() {
// 宣告一個新的 state 變數,我們叫他「count」
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}