LearnUseCallBack.jsx 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import {useState,useCallback} from 'react';
  2. /**
  3. * useCallback
  4. * 允许在多次渲染中缓存函数的
  5. * const cachedFn = useCallback(fn, dependencies)
  6. * fn:想要缓存的函数
  7. * dependencies:有关是否更新 fn 的所有响应式值的一个列表
  8. */
  9. function Other({onClick1,aa}) {
  10. return (
  11. <>
  12. <button onClick={onClick1}>修改名字</button>
  13. <input type="text" onChange={aa} />
  14. </>
  15. )
  16. }
  17. function LearnUseCallback() {
  18. const [name,setName] = useState("喜羊羊")
  19. const [age,setAge] = useState(7)
  20. const changeName = useCallback(() => {
  21. setName("小花")
  22. }, [])
  23. const changeAge = useCallback(()=>{
  24. setAge(age + 2)
  25. },[age])
  26. function showMain() {
  27. setName("牛魔王")
  28. }
  29. return(
  30. <>
  31. <h1>useCallback</h1>
  32. <p>我叫{name}</p>
  33. <p>今年{age}岁</p>
  34. <h1 onClick={showMain}>出现</h1>
  35. {/* <Other onClick1={changeName} aa={changeAge} /> */}
  36. </>
  37. )
  38. }
  39. export default LearnUseCallback;