- ReactJS 教程
- ReactJS - 首頁
- ReactJS - 簡介
- ReactJS - 路線圖
- ReactJS - 安裝
- ReactJS - 特性
- ReactJS - 優點與缺點
- ReactJS - 架構
- ReactJS - 建立 React 應用
- ReactJS - JSX
- ReactJS - 元件
- ReactJS - 巢狀元件
- ReactJS - 使用新建立的元件
- ReactJS - 元件集合
- ReactJS - 樣式
- ReactJS - 屬性 (props)
- ReactJS - 使用屬性建立元件
- ReactJS - props 驗證
- ReactJS - 建構函式
- ReactJS - 元件生命週期
- ReactJS - 事件管理
- ReactJS - 建立一個事件感知元件
- ReactJS - 在 Expense Manager 應用中引入事件
- ReactJS - 狀態管理
- ReactJS - 狀態管理 API
- ReactJS - 無狀態元件
- ReactJS - 使用 React Hooks 進行狀態管理
- ReactJS - 使用 React Hooks 進行元件生命週期管理
- ReactJS - 佈局元件
- ReactJS - 分頁
- ReactJS - Material UI
- ReactJS - Http 客戶端程式設計
- ReactJS - 表單程式設計
- ReactJS - 受控元件
- ReactJS - 非受控元件
- ReactJS - Formik
- ReactJS - 條件渲染
- ReactJS - 列表
- ReactJS - Keys
- ReactJS - 路由
- ReactJS - Redux
- ReactJS - 動畫
- ReactJS - Bootstrap
- ReactJS - 地圖
- ReactJS - 表格
- ReactJS - 使用 Flux 管理狀態
- ReactJS - 測試
- ReactJS - CLI 命令
- ReactJS - 構建和部署
- ReactJS - 示例
- Hooks
- ReactJS - Hooks 簡介
- ReactJS - 使用 useState
- ReactJS - 使用 useEffect
- ReactJS - 使用 useContext
- ReactJS - 使用 useRef
- ReactJS - 使用 useReducer
- ReactJS - 使用 useCallback
- ReactJS - 使用 useMemo
- ReactJS - 自定義 Hooks
- ReactJS 高階
- ReactJS - 可訪問性
- ReactJS - 程式碼分割
- ReactJS - 上下文
- ReactJS - 錯誤邊界
- ReactJS - 轉發 Refs
- ReactJS - 片段
- ReactJS - 高階元件
- ReactJS - 整合其他庫
- ReactJS - 最佳化效能
- ReactJS - Profiler API
- ReactJS - 埠
- ReactJS - 無 ES6 ECMAScript 的 React
- ReactJS - 無 JSX 的 React
- ReactJS - 調和
- ReactJS - Refs 和 DOM
- ReactJS - 渲染 Props
- ReactJS - 靜態型別檢查
- ReactJS - 嚴格模式
- ReactJS - Web Components
- 其他概念
- ReactJS - 日期選擇器
- ReactJS - Helmet
- ReactJS - 內聯樣式
- ReactJS - PropTypes
- ReactJS - BrowserRouter
- ReactJS - DOM
- ReactJS - 走馬燈
- ReactJS - 圖示
- ReactJS - 表單元件
- ReactJS - 參考 API
- ReactJS 有用資源
- ReactJS - 快速指南
- ReactJS - 有用資源
- ReactJS - 討論
ReactJS - 狀態管理
狀態管理是任何動態應用程式的重要且不可避免的功能之一。React 提供了一個簡單靈活的 API 來支援 React 元件中的狀態管理。在本章中,讓我們瞭解如何在 React 應用程式中維護狀態。
什麼是狀態?
狀態表示 React 元件在給定例項時的動態屬性的值。React 為每個元件提供了一個動態資料儲存。內部資料表示 React 元件的狀態,可以使用元件的 this.state 成員變數訪問。每當元件的狀態發生變化時,元件都會透過呼叫 render() 方法以及新狀態來重新渲染自身。
一個簡單的示例來更好地理解狀態管理是分析一個即時時鐘元件。時鐘元件的主要工作是在給定例項時顯示某個位置的日期和時間。由於當前時間每秒都會變化,因此時鐘元件應在其狀態中維護當前日期和時間。由於時鐘元件的狀態每秒都會發生變化,因此時鐘的 render() 方法將每秒被呼叫一次,並且 render() 方法將使用其當前狀態顯示當前時間。
狀態的簡單表示如下所示:
{
date: '2020-10-10 10:10:10'
}
讓我們在 無狀態元件 章節中建立一個新的 Clock 元件。
定義狀態
React 中的狀態可以與函式和類元件一起使用。要在元件中使用狀態,必須存在一個起點,即初始狀態。元件的這個初始狀態必須在元件類的建構函式中定義。以下是定義任何類的狀態的語法:
state = {attribute: "value"};
讓我們看一個帶有初始狀態的類元件的示例程式碼:
Class SampleClass extends React.Component
{
constructor(props)
{
super(props);
this.state = { name : "John Doe" };
}
}
建立狀態物件
React 元件具有內建的狀態物件。狀態物件用於儲存屬於定義此狀態的元件的所有屬性值。當狀態物件發生變化時,元件會重新渲染。
讓我們看一個示例程式碼來演示如何在 React 中建立狀態物件。
Class BookClass extends React.Component
{
constructor(props)
{
super(props);
this.state = { name : "John Doe" };
}
render() {
return (
<div>
<h1>Name of the Author</h1>
</div>
);
}
}
要更好地理解狀態管理,請檢視以下章節。
廣告