Hooks简单的知识点

函数式组件 什么Hooks?
     1.Hooks 是一些可以让你在函数组件内 '钩入' React state 及生命周期等特性函数
     2.关于Hooks的 "比喻" 本质上式 自变量 和因变量处理
001. const [数值,修改数据的方法] = useState(默认值)
        const [x,setX] = useState(0);

002. 使用 useMemo来缓存一个因变量
        const  y = useMemo(() => 2 *x +1)

003. 使用 useCallback来汉朝一个函数类型的因变量
        const changx = useCallback(()=>setX(x+1),[x])
使用Hooks的好处在于
       1-1.只要x不变,y和点击事件会被缓存下来,每次使用的都是缓存的值 如果不适应这个缓存方式,每次函数式组件执行的时候,都会基于x,创建新的y和点击事件
个人建议
     这个涉及到React的性能忧患,在不涉及到性能的时候,都可以考虑不使用这两个Hooks

004. 引言 -- 函数式编程的概念: 副作用
    纯函数:如果固定输入,一定会产出固定的输出,那么这个函数就是纯函数  
    function sum(x){
        return 2 * x + 1
    }
    函数的副作用:在固定输出的基础上,还会做其他内容
        例作:产生不固定输出/行为处理(请求数据/操作DOM)等 都可以作为函数的副作用

005. 通过 useEffect来定义 有副作用的因变量
     执行三次:组件挂载时,指定的依赖数据更新时,组件卸载的时候
      useEffect( ()=>{
         document.title = x
      },[x])// 依赖于x 当x发生改变时执行

006. useReducer:可以看作进阶版的useState
      它使用redux的概念,将多个state合并成一个,本质上也是操控变量;

007. 跨组件数据传递:useContext
       发送:createContext() 创建一个conterxt
       接受: useContext()
       无需考虑组件的层级,使用组件跨级通讯简单

008. useRef:在驱动试图的过程中触发,让我们可以去执行一些行为

小总结
      1.useState():定义自变量以及修改自变量的方法
      2.useMemo() 和 useCallback():定义无副作用的因变量useCallback可以将这些函数缓存下来,这样下一次页面重新渲染的时候,某些函数就不会重新被创建了。useMemo也可以返回一个记忆函数。
      3.useEffect():定义有副作用的因变量,并来处理副作用,可以实现特定的功能,如异步请求
    4.使用useRef()创建了一个值后,就可以将其绑定到DOM节点上,给DOM节点增加一个ref属性,将loginRef传入,则可以通过其current属性获取到DOM节点的值。
    5.useContext()useContext()可以共享状态,作用是进行状态的分发(React16.x以后的版本支持),避免了使用Props进行数据的传递
    6.useReducer():Action钩子,在使用React的过程中,如遇到状态管理,一般会用到Redux,而React本身是不提供状态管理的。而useReducer()提供了状态管理
useCallback()与useMemo()的区别:
    useCallback()不会执行第一个参数函数,而是将其返回,useMemo()会执行第一个函数并且将函数执行结果返回给你。useCallback()常用记忆时间按函数,生成记忆后的时间函数传递给子组件使用,useMemo()更适合经过函数计算得到一个确定的只,比如记忆组件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A小博.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值