|
|
@ -0,0 +1,50 @@ |
|
|
|
import { useState, useEffect } from 'react' |
|
|
|
|
|
|
|
// useEffect函数,作用就是为 react 函数组件提供副作用处理的 |
|
|
|
|
|
|
|
/* 依赖项控制副作用的执行时机 |
|
|
|
1.默认状态(无依赖项):组件初始化的时候先执行一次,等到每次数据修改组件更新再次执行 |
|
|
|
|
|
|
|
2.添加一个空数组依赖项,组件初始化的时候执行一次 |
|
|
|
|
|
|
|
3. 依赖特定项:组件初始化的时候执行一次,依赖的特定项发生变化会再次执行 |
|
|
|
|
|
|
|
4.注意事项:只要 useEffect 回调函数中用到的数据状态就应该出现在依赖项数组中声明,否侧可能会有 bug |
|
|
|
|
|
|
|
hook 的出现就是在不用生命周期的概念也可以写业务代码 |
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
function App() { |
|
|
|
const [count, setCount] = useState(0) // 0 是 count 的初始值 |
|
|
|
const [name, setName] = useState('one') |
|
|
|
|
|
|
|
/* useEffect(() => { |
|
|
|
// 定义副作用 |
|
|
|
console.log('副作用又执行了') |
|
|
|
document.title = count |
|
|
|
}, []) */ // 添加一个空数组依赖项 [],组件只在首次渲染时执行一次 |
|
|
|
|
|
|
|
/* useEffect(() => { |
|
|
|
// 定义副作用 |
|
|
|
console.log('副作用又执行了') |
|
|
|
document.title = count |
|
|
|
}, [count]) */ // 添加特定依赖项 [count] |
|
|
|
|
|
|
|
// 初始化 + count 或 name 被修改时都会执行副作用函数 |
|
|
|
useEffect(() => { |
|
|
|
// 定义副作用 |
|
|
|
console.log('副作用又执行了') |
|
|
|
document.title = count |
|
|
|
console.log(name) |
|
|
|
}, [count,name]) |
|
|
|
|
|
|
|
return ( |
|
|
|
<div> |
|
|
|
<button onClick={() => setCount(count + 1)}>{count}</button> |
|
|
|
<button onClick={() => setName('cp')}>{name}</button> |
|
|
|
</div> |
|
|
|
) |
|
|
|
} |
|
|
|
|
|
|
|
export default App |