zoukankan      html  css  js  c++  java
  • React-Hooks

    hooks相比较于class的优势:

    1,学习成本低,不涉及生命周期。useState,useEffect

    2,业务逻辑聚合。useEffect

    3,闭包问题。

    七大hooks:

    1,useState改变状态

      const [x, setx] = react.useState(x的初始值);

      react在数据变化时会创建虚拟dom对象,diff对比,不存在的对象属性会被删除

      注意:1,setState不会自动合并之前的值。想要原来的值,先复制,类似这样setUser({...user, name: 'cmt'});

         2,setX(obj)的时候obj的地址必须改变。地址不变的话不会更新视图

    2,useEffect解决函数组件如何像类组件一样使用生命周期钩子的问题

      三个使用场景:1,作为componentDidMount使用,第二个参数为空数组[ ]

             2,作为componentDidUpdate使用,第二个参数为制定依赖

             3,作为componentWillUnMount使用,通过return

      useEffect在浏览器渲染完成后执行,uselayoutEffect在渲染前执行,uselayoutEffect比useEffect先执行

    3,useMemo  类似于vue的计算属性computed

      useMemo(回调函数,[依赖])

      useMemo可以缓存所有对象,useCallback只能缓存函数

      useCallback(x => log(x),[m])等价于useMemo(() => x => log(x), [m])

    4,useRef 创建一个数据的引用,并且这个数据在render过程中保持不变

      const count = useRef(0),读取count.current

      ref:对组件实例的引用。ref可以设置回调函数,组件被挂载后,回调函数会立即执行

      useRef:可以跨越渲染周期存储数据,对他修改不会引起组件重新渲染

  • 相关阅读:
    AcWing 1081. 度的数量
    CF584D Dima and Lisa
    [ABC130F] Minimum Bounding Box
    AT4289 [ABC133E] Virus Tree 2
    Arc of Dream HDU
    Reading comprehension HDU
    【洛谷 1541】乌龟棋
    【洛谷 4880】抓住czx
    【洛谷 1525】关押罪犯
    【洛谷 1040】加分二叉树
  • 原文地址:https://www.cnblogs.com/caimengting/p/15248093.html
Copyright © 2011-2022 走看看