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.

42 lines
1.8 KiB

2 years ago
2 years ago
  1. /** useState
  2. * 1.导入 useState 函数 react 导入
  3. * 2.执行这个函数并且传入初始值必须在函数组件中
  4. * 3.解构 [数据修改数据的方法]
  5. * 4.使用数据 修改数据 */
  6. /**
  7. * const [count, setCount] = useState(0)
  8. * 1.useState 传过来的参数作为 count 的初始值
  9. * 2. [count, setCount] 这里的写法是一个解构赋值useState 返回值是一个数组
  10. * 3. [] 里面的值名字可以自定义保持语义化
  11. * 4. [] 里面的值顺序不能更换第一个参数是数据状态第二参数是修改数据的方法
  12. * 5. setCount 函数作用用来修改 count, 依旧保持不能直接修改原值要生成一个新值替换原值setCount基于原值计算得到的新值
  13. * 6. count setCount 是一对的绑定在一起的setCount 只能用来修改对应的 count
  14. */
  15. /**
  16. * 当调用 setCount 的时候更新过程
  17. *
  18. * 首次渲染
  19. * 首次被渲染的时候组件的内部代码会被执行一次其中 useState 也会跟着执行重点注意初始值只在首次渲染是生效
  20. *
  21. * 更新渲染 setCount 都会更新
  22. * 1. app 组件会再次渲染这个函数会再次执行
  23. * 2. useState 再次执行得到的新的 count 值不是 0 而是修改之后的 1模板会用新值渲染
  24. *
  25. * 重点useState 初始值只在首次渲染生效后续只要调用 setCount整个 app 中代码都会执行此时的 count 每次拿到的都是最新值
  26. */
  27. import { useState } from 'react'
  28. function App () {
  29. const [count, setCount] = useState(0) // 0 是初始值
  30. return (
  31. <div>
  32. <button onClick={ () => setCount(count + 1)}>{count}</button>
  33. </div>
  34. )
  35. }
  36. export default App