1.useEffect
react hooks
使用:
useEffect(fn,dep)
第一個參數是函數,第二個參數是依賴項,可不傳
1.當沒有給依賴項時,則useEffect每次都會執行里面的函數
2.當給依賴項時,依賴項發生改變時,useEffect才會執行里面的函數
3.當依賴項為一個空數組時,則頁面加載后只執行一次,后面不在執行
import React, { useEffect, useState } from 'react'; const App = () => { const [count, setCount] = useState(0);
// componentDidMount useEffect(() => { console.log('我只執行一次'); }, []);
// update生命周期 useEffect(() => { console.log('count變化了,我就執行'); }, [count]);
// update useEffect(() => { console.log('我每次都執行'); }); const clickEvent = () => { setCount(preCount => { console.log('上一次的值:', preCount); return preCount + 1; }); }; return ( <div className='App'> <button onClick={clickEvent}>increment</button> <p>{count}</p> </div> ); }; export default App;
清除副作用
在useEffect函數中返回一個函數,則當組件卸載時就會執行清除副作用函數
useEffect(() => { console.log('我每次都執行');
// componentWillUnMount return () => { console.log('clean'); }; });