React 使用的語法是JSX,JavaScript XML,需要透過Babel編譯後才能執行,可以視作React.createElement,這也導致他的回傳物件都只能由一個element
render() {
return (
<>
<h1>{this.props.text}</h1>
</>
)
}
傳值方法
父元件可以透過props傳值給子元件
父元件
<HelloWorldFunction text="hello world"></HelloWorldFunction>
子元件
const HelloWorldFunction = (props) => <> {props.text} </>
比較
狀態(state)與屬性(prop)
| 類別元件 | 函式型元件 | |
|---|---|---|
| 資料類型 | 物件 | 物件 |
| 用途 | 元件內部資料,用來儲存會因使用者操作而改動的值 | 父元件傳給子元件的資料 |
| 元件種類限制 | ES6 類別元件 | ES6 類別元件與函式型元件 |
| 值更動限制 | 只能透過setState()改動 | 只有父母元件可更動 |
更動state值會觸發重新渲染所以有嚴格限制不能隨意改動state值
類別元件與函式型元件
| 類別元件 | 函式型元件 | |
|---|---|---|
| 狀態(state) | 可以使用 | 不能使用 |
| 生命週期方法 | 可以使用 | 不能使用 |
| 渲染 | render方法回傳值 | 函式回傳值 |
| Context API | 可以使用 | 可以使用 |
| 效能比較 | 相同 | 相同 |


