最近在使用了redux进行项目的开发,这个东西确实是把逻辑和页面的展示区分开了,在代码的书写上,以及以后的更改代码,提供了更多的方便.
dva对redux-saga封装了一层,目前我使用的情况来看还是比较方便的,可以把所有的项目运算都放到一个文件中.
在使用redux-saga进行项目管理里,建议,使用者前,能够充分了解state的不足之处,我能理解react中state的不足之处便是:在项目足够大的时候,每个组件之间的相互调用参数,传递参数,给我带来了很多的不便,比如一个下拉select的数据,在A组件中使用需要使用,在B组件中也是需要使用的,可是如果没有用redux-saga的话,那么我们就要在A组件中调用一次,B组件中调用一次,又或者是在A,B组件中都需要用到同一个接口,我们只需要调用redux-saga的this.props.dispatch.把方法写到一个js文件中,然后在redux-saga中的action中调用,在dva里改成了effect,带*的函数了.
在使用redux-saga中难免会有异步数据同步不来的时候,我一般会把数据的展示和调用放到了render中,前提是componentDidMount 中调用了但是没有数据的展示,实在迫不得已才放到了render中.redux本身也是一个异步的过程.
网络请求数据如果有必要把异步转同步,就去转,不然老是会有数据延迟获取到的问题,可以通过es7的async方法,这个还是比较好用的
原文链接:https://www.f2er.com/react/302354.html