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

2 years ago
  1. import { useState, useEffect } from 'react'
  2. // useEffect函数,作用就是为 react 函数组件提供副作用处理的
  3. /*
  4. 1.默认状态无依赖项组件初始化的时候先执行一次等到每次数据修改组件更新再次执行
  5. 2.添加一个空数组依赖项组件初始化的时候执行一次
  6. 3. 依赖特定项组件初始化的时候执行一次依赖的特定项发生变化会再次执行
  7. 4.注意事项只要 useEffect 回调函数中用到的数据状态就应该出现在依赖项数组中声明否侧可能会有 bug
  8. hook 的出现就是在不用生命周期的概念也可以写业务代码
  9. */
  10. function App() {
  11. const [count, setCount] = useState(0) // 0 是 count 的初始值
  12. const [name, setName] = useState('one')
  13. /* useEffect(() => {
  14. // 定义副作用
  15. console.log('副作用又执行了')
  16. document.title = count
  17. }, []) */ // 添加一个空数组依赖项 []组件只在首次渲染时执行一次
  18. /* useEffect(() => {
  19. // 定义副作用
  20. console.log('副作用又执行了')
  21. document.title = count
  22. }, [count]) */ // 添加特定依赖项 [count]
  23. // 初始化 + count 或 name 被修改时都会执行副作用函数
  24. useEffect(() => {
  25. // 定义副作用
  26. console.log('副作用又执行了')
  27. document.title = count
  28. console.log(name)
  29. }, [count,name])
  30. return (
  31. <div>
  32. <button onClick={() => setCount(count + 1)}>{count}</button>
  33. <button onClick={() => setName('cp')}>{name}</button>
  34. </div>
  35. )
  36. }
  37. export default App