useState 鉤子是 React 中最常用的鉤子之一。它允許您向功能組件添加狀態。在引入鉤子之前,狀態只能在類別元件中使用,但 useState 也允許您在功能元件中擁有狀態。這使得功能組件更加強大和靈活。
useState 是一個可讓您在功能元件中宣告狀態變數的函數。它傳回一個包含兩個元素的陣列:
const [state, setState] = useState(initialState);
import React, { useState } from 'react'; const Counter = () => { const [count, setCount] = useState(0); // Initial state is set to 0 const increment = () => { setCount(count + 1); // Update state using the setCount function }; return ( <div> <p>Current Count: {count}</p> <button onClick={increment}>Increment</button> </div> ); }; export default Counter;
當新的狀態依賴先前的狀態時,可以將一個函數傳遞給setState。這可確保更新是根據最新的狀態值進行的。
const [count, setCount] = useState(0); const increment = () => { setCount(prevCount => prevCount + 1); // Functional update to ensure accurate state updates };
您可以在元件內多次使用 useState 來管理不同的狀態。
import React, { useState } from 'react'; const MultiStateComponent = () => { const [count, setCount] = useState(0); const [name, setName] = useState('John'); return ( <div> <p>Count: {count}</p> <button onClick={() => setCount(count + 1)}>Increment</button> <p>Name: {name}</p> <button onClick={() => setName('Doe')}>Change Name</button> </div> ); };
如果初始狀態很複雜或需要計算,您可以將函數傳遞給 useState,該函數僅在元件首次渲染時運行。
const [state, setState] = useState(initialState);
如果您的狀態是物件或數組,則 setState 函數僅更新您提供的狀態的特定部分。 React 不執行深度合併,因此如果您想要變更狀態物件的任何部分,則需要明確更新整個狀態物件。
import React, { useState } from 'react'; const Counter = () => { const [count, setCount] = useState(0); // Initial state is set to 0 const increment = () => { setCount(count + 1); // Update state using the setCount function }; return ( <div> <p>Current Count: {count}</p> <button onClick={increment}>Increment</button> </div> ); }; export default Counter;
const [count, setCount] = useState(0); const increment = () => { setCount(prevCount => prevCount + 1); // Functional update to ensure accurate state updates };
import React, { useState } from 'react'; const MultiStateComponent = () => { const [count, setCount] = useState(0); const [name, setName] = useState('John'); return ( <div> <p>Count: {count}</p> <button onClick={() => setCount(count + 1)}>Increment</button> <p>Name: {name}</p> <button onClick={() => setName('Doe')}>Change Name</button> </div> ); };
useState 鉤子是 React 中用於管理元件狀態的基本建構塊。它使功能組件能夠擁有自己的本地狀態,使程式碼更加模組化且更易於理解。透過使用 useState,您可以建立響應用戶輸入或事件的動態和互動式元件。
以上是掌握 React 的 useState Hook:基礎知識與進階用例的詳細內容。更多資訊請關注PHP中文網其他相關文章!