useRef

1. 通过countRef.current解决capture value的现象

countRef.current可以理解为组件内的一个变量,在任何地方都可以访问到
而state是存在capture value,不一定能访问到最新状态

import React, { useState, useEffect, useRef } from 'react'

const Fetch = () => {
  const [count, setCount] = useState(0)

  useEffect(() => {
    const timer = setTimeout(() => {
      setCount(count + 1)
    }, 500)
    return () => clearTimeout(timer)
  },[count])

  return (
    <div>
      count: {count}
    </div>
  )
}

function App() {
  return (
    <div className="App">
      <Fetch />
    </div>
  )
}

export default App
  1. 获取dom
import React, { useState, useEffect, useRef } from 'react'

const Fetch = () => {
  const [count, setCount] = useState(0)
  const btnRef = useRef(null)

  useEffect(() => {
    const handleOnclick = () => {
      setCount(count + 1)
    }
    btnRef.current.addEventListener('click', handleOnclick,false)
    return () => {
      btnRef.current.removeEventListener('click', handleOnclick,false)
    }
  }, [count])

  return (
    <div>
      count: {count}
      <button ref={btnRef}>+1</button>
    </div>
  )
}

function App() {
  return (
    <div className="App">
      <Fetch />
    </div>
  )
}

export default App

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容