You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

50 lines
1.7 KiB

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