react hooks能取代redux吗

       react hooks作为当下比较流行的react库,拥抱js闭包,拥抱函数式编程。将无状态组件发展成一种新趋势。

       前段时间我用hooks提供的api模拟出了一个简单的类似redux的实现。要回答这个问题,首先得弄清楚为什么使用redux或者hooks。

       redux一般使用比较复杂的页面应用, 它充当的是一个状态管理的角色。让state的变化变得可以预测,通过store发送指定type的dispatch,传递到reducer纯函数对状态进行更改。然后视图对state的更改做出响应。并且还支持跨页面的状态共享。

       hooks本质上不是为了解决state的管理问题,它其实是引入了无状态组件,简化react的生命周期,比较适合单页面或者比较简单的应用。

       我的模拟redux的过程中发现类action里面无法获取到最新的reducer状态值。因为我在页面上使用const [state,dispatch]=useReducer(reducer,initState)这样的方式,为了能将与服务端的交互写到一起,我将state和dispatch作为构造函数的参数传递给action,使得我在action里面可以使用dispatch({type:''}).但由此引发的问题是state不能得到及时更新,导致如果在action里面直接获取state会有问题。这在我看来是用hooks而丢弃redux的一个弊端。只能在代码里控制不在action里面获取state的值,全部由页面去获取和传递。        

猜你喜欢

转载自www.cnblogs.com/sherrybloghome/p/12063327.html