React JS #5 | State (狀態)

React JS #5 | State (狀態)

koko-avatar-img
發佈於React
更新於 發佈於 閱讀時間約 4 分鐘

React State:讓元件擁有記憶

在 React 的世界裡,Props 負責從父元件向子元件傳遞資料,而 State 則是負責管理元件自身的內部資料。

State 就像元件的記憶,可以儲存元件的狀態,並根據狀態的變化來更新 UI。


什麼是 State?

State 是元件的內部狀態,用於儲存元件的資料。與 Props 不同的是,State 由元件自己管理。

State 的作用是:

  • 儲存元件的資料: 元件可以使用 State 來儲存自身的資料,例如輸入框的內容、按鈕的點擊次數、下拉選單的選擇值等等。
  • 控制元件的行為: 元件可以根據 State 的值來改變自身的行為,例如顯示或隱藏某些內容、啟用或停用某些功能等等。
  • 更新 UI: 當 State 的值發生改變時,React 會自動重新渲染元件,更新 UI,讓使用者看到最新的狀態。


State 的初始化與更新 : useState Hook

在過去,只有類別元件 (Class Components) 才能夠擁有 State,並且需要使用 this.state 和 this.setState() 方法來管理 State。

但隨著 React Hooks 的引入,函式元件 (Functional Components) 也能夠方便地使用 State,並且更加簡潔易懂。


useState 是一個 React Hook,用於在函式元件中添加 State。它接收一個初始值作為參數,並返回一個包含 State 值和更新 State 函式的陣列。

import React, { useState } from 'react';

function Counter() {
const [count, setCount] = useState(0); // 初始化 count 的值為 0

return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
  • useState(0):初始化 count 的值為 0。
  • const [count, setCount] = useState(0):
    • count:State 的值。
    • setCount:更新 State 值的函式。
  • setCount(count + 1):將 count 的值加 1,並更新 State。


State 的更新注意事項

  • 不要直接修改 State: 應該使用 setCount() 函式來更新 State,而不是直接修改 count 的值。
const [count, setCount] = useState(1); // 初始值為 1 
count = 100 // 錯誤語法,你不可以直接修改數值
setCount(100) // 正確語法,修改數值只能透過 useState 賦予的第二個參數
  • State 的更新可能是非同步的: 如果在同一個事件處理函式中多次呼叫 setCount(),React 可能會將這些更新合併成一次更新。


State 的提升 (Lifting State Up)

當多個元件需要共享同一個 State 時,可以將 State 提升到它們的共同父元件中。這樣,父元件就可以透過 Props 將 State 傳遞給子元件,並且子元件可以透過呼叫父元件傳遞的函式來更新 State。


總結

React State 讓元件擁有記憶,是賦予 UI 動態生命的重要機制。透過 State,元件可以儲存自身的資料,控制自身的行為,並且根據 State 的變化來更新 UI。



avatar-img
koko的沙龍
1會員
34內容數
留言
avatar-img
留言分享你的想法!
koko的沙龍 的其他內容
在 React 的世界裡,元件 (Component) 就像一個個獨立的個體,各自負責 UI 的一部分,要讓這些個體協同工作,就需要一種溝通的機制,而 Props 就是組件之間通信和數據傳遞的主要方式。
在 React 的世界裡,元件 (Component) 扮演著至關重要的角色。它們是構成使用者介面 (UI) 的基本 building blocks,如同積木一般,可以組合成複雜的應用程式。
告別字串拼接地獄:用 JSX 解鎖 React 的優雅姿態 JSX 是一種強大且方便的語法,讓 React 開發者能夠更直觀地描述 UI 結構,提高程式碼可讀性與開發效率。
在 React 的世界裡,元件 (Component) 就像一個個獨立的個體,各自負責 UI 的一部分,要讓這些個體協同工作,就需要一種溝通的機制,而 Props 就是組件之間通信和數據傳遞的主要方式。
在 React 的世界裡,元件 (Component) 扮演著至關重要的角色。它們是構成使用者介面 (UI) 的基本 building blocks,如同積木一般,可以組合成複雜的應用程式。
告別字串拼接地獄:用 JSX 解鎖 React 的優雅姿態 JSX 是一種強大且方便的語法,讓 React 開發者能夠更直觀地描述 UI 結構,提高程式碼可讀性與開發效率。