关于hooks

1.useState

        函数组件使用状态就需要这个钩子。

        useState用法是需要传入一个参数作为状态的初始值,当函数执行完后会返回两个值,一个是当前状态的属性,一个是修改状态的方法。

        原理:我们写一个useState方法,会返回当前状态的属性和设置状态的方法,每当状态改变之后,方法中会调用刷新视图的render方法。解决多个useState同时使用的问题,当多个状态存在的时候,我们需要使用数组保存状态。

2.useEffect

        它可以让你在函数中执行副作用操作。

        副作用:数据获取,数据订阅,以及手动更改react组件中的dom都属于副作用。因为渲染出来页面都是静态的,任何在其他之后的操作都会对它产生影响,所以称为副作用。

        useEffect第二个参数

        第一个参数:是一个函数,这个函数目的是告诉React组件,需要在渲染后执行哪些操作,这个函数会在DOM更新后被调用,useEffect默认在每次渲染后都调用,但也可以手动控制它的执行。

        第二个参数:是一个数组,当数组中任意一项变化的时候,useEffect会被重新执行。如果传入一个空数组,就是告诉useEffect不依赖于state,props中的任意值,useEffect就只会执行一次。

当数组有一个值的时候,就看这个值是否发生变化,发生变化后useEffect才会重新执行。

3.useContext

        React 的 Context API 是一种在应用程序中深入传递数据的方法,而无需手动一个一个在多个父子孙之间传递 prop。当咱们需要的只是传递数据时,它可以作为像Redux这样的工具的一个很好的替代。

4.useReducer

        const [state, dispatch] = useReducer(    
                           reducer,    
                           initialArg,    
                           init    
                   )

        useState的代替方案,它接收一个形如 (state, action) => newState 的 reducer,并返回当前的 state 以及与其配套的 dispatch 方法。

在某些场景下,useReducer 会比 useState 更适用,例如 state 逻辑较复杂且包含多个子值,或者下一个 state 依赖于之前的 state 等。并且,使用 useReducer 还能给那些会触发深更新的组件做性能优化,因为你可以向子组件传递 dispatch 而不是回调函数 。

        

        

        

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值