国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

千鋒教育2022版React全家桶教程_react零基礎(chǔ)入門到項(xiàng)目實(shí)戰(zhàn)完整版

2023-07-15 17:51 作者:13135600239  | 我要投稿


# React hooks

函數(shù)組件

1. 函數(shù)組件沒有state,沒有this指向

2. 函數(shù)組件沒有生命周期

## userState使用

函數(shù)組件沒有state,提供了useState并提供讀、寫2個(gè)參數(shù),可以對(duì)數(shù)據(jù)進(jìn)行讀、寫操作。

使用代碼

```js

import React ,{useState}from 'react' //先引入

export default function Fun() {

? ? const [name, setname] = useState("zs");//可以通過第一個(gè)參數(shù)讀取數(shù)據(jù),第二個(gè)參數(shù)是用來改變第一個(gè)參數(shù)的數(shù)據(jù)

? ? const [age, setage] = useState(10);


? ? return (

? ? ? ? <div>

? ? ? ? ? ? <div>姓名:{name}</div>

? ? ? ? ? ? <button onClick={() => {

? ? ? ? ? ? ? ? setname("ls")

? ? ? ? ? ? }}>changename</button>

? ? ? ? ? ? <div>年齡:{age}</div>

? ? ? ? ? ? <button onClick={() => {

? ? ? ? ? ? ? ? setage(age + 1)

? ? ? ? ? ? }}>changeage</button>

? ? ? ? </div>

? ? )

}

```

## useEffect(副作用函數(shù))

1. 函數(shù)組件不存在生命周期 useEffect可以配合邏輯和依賴模擬類中生命周期概念 但是useEffect!=類的生命周期

2. useEffect調(diào)用會(huì)默認(rèn)執(zhí)行一次,接受兩個(gè)參數(shù),第一個(gè)參數(shù)是一個(gè)回調(diào)函數(shù),第二個(gè)參數(shù)是一個(gè)數(shù)組

### useEffect中第二個(gè)參數(shù)數(shù)組為空和不為空的區(qū)別?

1. 傳空數(shù)組表示副作用函數(shù)不依賴于任何狀態(tài),狀態(tài)發(fā)生改變,不會(huì)影響到useEffect,并且useEffect只會(huì)執(zhí)行一次

2. 不傳空數(shù)組表示在useEffect中使用了這個(gè)變量,并且在數(shù)組中申明了依賴,當(dāng)依賴的變量狀態(tài)發(fā)生改變時(shí),useEffect會(huì)執(zhí)行,數(shù)據(jù)狀態(tài)再次改變,useEffect會(huì)判斷狀態(tài)有沒有重復(fù)執(zhí)行,重復(fù)了,不會(huì)再次執(zhí)行,沒重復(fù),useEffect不會(huì)重復(fù)執(zhí)行,如果使用了變量不申明,會(huì)有eslint警告,useEffect再也不會(huì)執(zhí)行,

### useffect使用

```js

import React ,{useEffect,useState}from 'react'


export default function Fun() {

? ? const [name, setname] = useState("zhangshan");

? ? useEffect(()=>{

? ? ? ? setname(name.slice(0,1).toUpperCase()+name.slice(1))

? ? }, [name]);

? return (

? ? <div>Fun--{name}

? ? <button onClick={()=>{

? ? ? ? setname("lisi")

? ? }}>changename</button>

? ? </div>

? )

}

```

### useEffect模擬銷毀組件

通過傳入的函數(shù)return ()=>{} 進(jìn)行銷毀


### useEffect注意點(diǎn)

1. 使用次數(shù)?可以使用多次,可以寫多個(gè)useEffect函數(shù)

2. useEffect和useLayoutEffect的區(qū)別?

? ?a. 調(diào)用的時(shí)機(jī)不一樣,useLayoutEffect更加類似于componentDidMount和componentDidMount操作,在DOM完成更新后會(huì)立即調(diào)用函數(shù),會(huì)阻塞頁(yè)面渲染,useEffect會(huì)在整個(gè)頁(yè)面都跟新完成之后執(zhí)行

? ?b. useEffect在實(shí)際使用中會(huì)導(dǎo)致頁(yè)面抖動(dòng),可以把需要操作的dom代碼放在useLayoutEffect中,進(jìn)行dom操作,修改的dom會(huì)和react作出更改一起被渲染在頁(yè)面上,只有一次回流,重繪的代價(jià)

千鋒教育2022版React全家桶教程_react零基礎(chǔ)入門到項(xiàng)目實(shí)戰(zhàn)完整版的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
深泽县| 麻城市| 汉中市| 黄平县| 正定县| 芒康县| 崇左市| 琼海市| 佛教| 红原县| 永善县| 普兰店市| 阿坝| 廉江市| 黎平县| 宝丰县| 绥芬河市| 赤水市| 高陵县| 武冈市| 池州市| 扎兰屯市| 呈贡县| 玛曲县| 门源| 濉溪县| 潜山县| 拉孜县| 岱山县| 新和县| 株洲市| 玉山县| 红河县| 汾阳市| 商水县| 汶川县| 孟村| 新沂市| 河源市| 合阳县| 辽阳县|