四川網(wǎng)站建設培訓班百度助手下載安裝
React
組件
組件是什么
##### 概念:一個組件就是用戶界面的一部分,它可以有自己的邏輯和外觀,組件之間可以相互嵌套,也可以多次復用。
在 React
,一個組件就是首字母大寫的函數(shù),內(nèi)部存放了組件的邏輯和視圖 UI,渲染組件只需要把組件當成標簽書寫即可
// 定義一個組件
function MyButton() {// 組件的內(nèi)部邏輯和視圖 UIreturn <button>Click me</button>
}// 使用組件
function App() {return (<div><MyButton /></div>)
}
## `useState`的基礎使用
useState
是React提供的Hook,可以讓我們在函數(shù)組件中維護狀態(tài)。
它允許我們向組件添加一個狀態(tài)變量,從而控制影響組件的渲染結(jié)果。
本質(zhì):和普通 js
變量不同,狀態(tài)變量一旦發(fā)生變化組件的視圖UI也會跟著變化
/*** 項目的根組件** useState 狀態(tài)管理** 實現(xiàn)一個計數(shù)器按鈕*/import { useState } from "react";export default function App() {// 1. 調(diào)用 useState 狀態(tài)管理函數(shù),創(chuàng)建計數(shù)器狀態(tài)和更新計數(shù)器狀態(tài)的函數(shù)const [count, setCount] = useState(0);// 2. 實現(xiàn)計數(shù)器按鈕的點擊事件const handleClick = () => {/*** 作用:1. 用傳入的新值修改 count* 2. 重新使用新的 count 值渲染組件*/setCount(count + 1);};// 3. 渲染計數(shù)器按鈕和當前計數(shù)器值return (<div><h1>計數(shù)器:{count}</h1><button onClick={handleClick}>點擊增加</button></div>);
}
useState
是一個函數(shù),返回值是一個數(shù)組。- 數(shù)組中的第一個參數(shù)是狀態(tài)變量,第二個參數(shù)是 set 函數(shù),用來更新狀態(tài)變量。
useState
的參數(shù)將作為count
的初始值。
useState
的修改狀態(tài)規(guī)則
狀態(tài)不可變
在 React
中,狀態(tài)被認為是只讀的,我們應該始終替換他而不是修改它,直接修改狀態(tài)不能引發(fā)視圖更新
const [count, setCount] = useState(0);const handleClick = () => {// count++; // 錯誤,不能直接修改狀態(tài)/*** 作用:* 1.用傳入的新值修改 count* 2.重新使用新的 count 值渲染組件*/setCount(count + 1);
}
修改對象狀態(tài)
##### 規(guī)則:對于對象類型的狀態(tài)變量。應該始終傳給 set
函數(shù)一個新的對象來進行修改。
const [obj, setObj] = useState({ name: "張三", age: 20 });const handleClick = () => {// 錯誤,不能直接修改對象// obj.name = 'Join'// 正確,傳給 set 函數(shù)一個新的對象setObj({...obj, name: 'Join' });
}