React hooks、Redux

由hooks API 想到的Redux 的设计

“React不是一套完整的前端解决方案,它只提供了view层面的支持。。。。组件通信和数据管理它没有给出解决方案。。。“这是网上一些介绍 why redux 的文章中经常会看到的一话(也有很多声音说redux是过度设计..)那么redux做了什么为什么用了它数据就能‘整整齐齐’不易出错了呢?

我的理解就是“开源节流”的一个想法,没有用redux时,任何组件都可以随便任何时set任何State,这样就造成数据很乱,没有一个数据的“交通规则”,用了redux之后大家统一通过dispatchAction的方式来提交对数据改变的“申请”,dispatch就是更改数据的通道—-“开源”
提交的各种action,到了reducer这里会做统一的处理,每种type的action,能做的改动都是被reducer严格定义好的,只有reducer中有注册的类型才能被执行,这样就严格的限制了可对数据造成更改的范围—-“节流”. 一些文章中介绍说,redux做的就是当你想改变全局的state的时候“大张旗鼓”的告诉我。。。。大张旗鼓用的好,我的觉得Hook其实有点类似的味道,hooks只能在函数式组件中用,函数式组件本身就很纯,你给我什么我就渲染什么仅此而起,而当你想要做一些其他的小动作的时候也要大张旗鼓的告诉我,怎么个大张旗鼓呢,useEffect这个Api的名字,就很说明问题了—-“是的,我就是在这里在做会带来副作用的小动作啊~🤷‍♂️”。 这样就能比价清晰的将纯粹渲染的部分和带有副作用的部分划分开来,既能减少产生问题的可能,也方便对问题进行追查。