React Hooks提供React.useEffect來解決函數組件沒有生命周期的問題
React.useEffect(fn,?)第一個參數是特定實時機執行的回調函數,第二個參數是指依賴項
1.模擬componentDidMount第一次渲染
useEffect(() => { console.log(''); }, []) // 第二個參數為空時只會在第一次渲染時執行
2. 模擬componentDidUpdate
useEffect(() => { console.log('n變化了'); }, [n]) // 第二個參數為要監聽的數據
不傳第二個參數,則會在 state 的任意一個屬性改變時,組件每渲染一次,都會觸發該函數回調
useEffect(() => { console.log('任意屬性變化'); })
3,模擬componentWillUnmount
通過函數里返回函數的方式
useEffect(() => { console.log('任意屬性變了'); return () => { console.log('該組件要銷毀了'); } })
useEffect返回值是一個函數,在組件卸載前執行,或每次副效應函數重新執行之前執行
注意:多個副效應