1.20 什么是状态的快照及快照的陷阱

一、什么是状态的快照

  1. 也许state变量看起来和一般的可读写的JavaScript变量类似。但state再其表现出的特性上更像是一张快照。甚至他不会更改你已有的state变量,但会触发重新渲染

二、快照的陷阱

  1. 注意函数的作用域

    import { useState } from 'react'
    
    function App() {
      const [count, setCount] = useState(0)
      const handleClick = () => {
        setCount(count + 1)
        setCount(count + 1)
        setCount(count + 1)
        console.log(count)
      }
    
      return (
        <>
          <div>Default Template</div>
          <button onClick={handleClick}>点击</button>
          {count}
        </>
      )
    }
    
    export default App
    
  2. React会使state的值始终固定在一次渲染的各个时间处理函数的内部,无需担心代码运行时stat额是否发生了变化,这也是闭包的特性

最后更新于