react hooks useState 使用總結

2021-10-21 06:57:20 字數 1336 閱讀 2649

示例

function test (props) }>

不用箭頭函式設定值:

}>

使用箭頭函式設定值:)}

示例
/*每次setstate時,都要是全新的值*/

const [notnew,setnotnew]=usestate(0)

const [notnewarr,setnotnewarr]=usestate()

const [notnewobj,setnotnewobj]=usestate({})

useeffect(()=>,[notnew,notnewarr,notnewobj])

return (

)setnotnewobj((notnewobj)=>)

}}>

設定不是全新的值

}) }}>

設定是全新的值

}>

列印值)

結果 解釋

值相同的話是setstate的時候是不會執行的。陣列和物件不是變化了嗎?為什麼也不識別呢?引用形變數usestate監聽的時候是潛監聽,不會監聽你裡面到底變沒變,我只監聽你的引用變沒變,obj.name=1 ,你obj裡面變了,但是你obj的引用沒有變所以usestate認為沒變化。所以有的人setstate之後說為什麼我介面上列表渲染沒有變化就是因為這個

示例

/*state之間有依賴的話請使用usereducer*/

const [a,seta]=usestate(0)

const [b,setb]=usestate(0)

const [total,settotal]=usestate(0)

return (

}>

獲取a和b的合-total:

a:b:

)

結果 解釋

和第一點類似,它獲取不到最新的值,計算時候拿的是第一次的值,而不是seta和setb之後的新值。這裡也沒有箭頭函式來幫你。

使用usereducer

const initval=

function reducer(state,action)

}}function test (props) }>

獲取a和b的合-total:

a:b:

) }}>

使用usereducer獲取的-total:

VMWare Workstation使用總結幾則

1 安裝 使用ghost盤安裝時一定要注意,需要把空盤建立分割槽並設定為主分割槽 pq的使用形式,進入pq找到磁碟設定為啟用 否則 啟動後顯示boot from network intel e1000 有時裝機忘了,只能從頭再來 安裝64位的虛擬機器時,需要把bios中virtual technol...

VMWare Workstation使用總結幾則

1 安裝 使用ghost盤安裝時一定要注意,需要把空盤建立分割槽並設定為主分割槽 pq的使用形式,進入pq找到磁碟設定為啟用 否則 啟動後顯示boot from network intel e1000 有時裝機忘了,只能從頭再來 安裝64位的虛擬機器時,需要把bios中virtual technol...

pytest parametrize 使用總結

pytest中裝飾器 pytest.mark.parametrize 引數名 list 可以實現測試用例引數化,類似ddt。如 pytest.mark.parametrize 請求方式,介面位址,傳參,預期結果 get www.baidu.com post www.baidu.com pytest....