![]() | 1 maichael 2019-03-11 14:33:04 +08:00 redux-thunk |
2 013231 2019-03-11 14:35:51 +08:00 1. 如果你希望 Redux Action 某些作, 可以考 redux-sage: https://github.com/redux-saga/redux-saga 2. 不是所有的都要放到 Redux 里. 像"等待求完成修改按 disabled"相局部的, 完全有必要使用 Redux. https://redux.js.org/faq/organizing-state#do-i-have-to-put-all-my-state-into-redux-should-i-ever-use-react-s-setstate |
![]() | 3 Kilerd 2019-03-11 14:37:40 +08:00 via iPhone Redux saga |
![]() | 4 wly19960911 OP @maichael #1 redux-thunk 我看了下,调用 dispatch,返回的是 dispatch 里面的东西或者 action return 的东西,那么怎么控制一个 promise 的流程,难道自己写?或者 action 直接用 async/await 来写? |
5 alexsunxl 2019-03-11 14:43:26 +08:00 组件内部状态(或者父子这种近的) 用 this.setState 就可以了。 跨得比较远的组件之间 才需要用到 专门的状态管理工具 |
6 grewer 2019-03-11 14:46:07 +08:00 ![]() 我之前用 redux-promise 的时候 中间层是个 promise ,这时候调用 action 时 ,返回的就是该 promise 不过控制要具体,细分 还是推荐 saga |
![]() | 7 wly19960911 OP @alexsunxl #5 这个也不是组件内部状态,如果我是个人信息,我改了昵称,那么这个表单数据就变成了全局状态,肯定要调用 redux 了吧,难道是先自己调用 api 然后通过 action 进行全局更新?看了些 demo 都感觉写的太复杂了,包括 api 调用一套全部写进 action 了。 |
8 alexsunxl 2019-03-11 14:53:51 +08:00 |
![]() | 9 wly19960911 OP |
![]() | 10 maichael 2019-03-11 15:00:06 +08:00 ![]() @wly19960911 #4 thunk 本质上就是给一个异步函数传入了 dispatch,你可以在里面调用 dispatch 发送 action, 然后修改全局的状态。 |
![]() | 11 wly19960911 OP @alexsunxl #8 嗯,我知道,其实整体流程我都能整理,mobx 的理念也是我在 angular 里面自己实现的状态管理理念一样,也和 vuex 类似。 但是到了 redux 的概念就复杂了很多,文档的内容比我想象中少很多,我自己理解能力也弱。 |
![]() | 12 maichael 2019-03-11 15:01:38 +08:00 @wly19960911 #9 redux-saga 没有管你自己组件怎么去响应状态变化的,它只帮你管理这些异步方法以及修改全局 store 的数据,然后你自己的组件需要去响应这些全局状态的改变。 |
![]() | 13 zzNucker 2019-03-11 15:01:52 +08:00 ![]() redux-saga 然后你会发现蛋疼的很 |
![]() | 15 wly19960911 OP @maichael #10 那就能理解了,感谢。 |
16 alexsunxl 2019-03-11 16:47:39 +08:00 看过 elm 的 demo 和视频之后, 就觉得 redux 很找人烦。 没有语言结构和 api 层面的基础, 非要学人家绕来绕去, 太反人类。 从此坚决用 mobx |
![]() | 17 wly19960911 OP @alexsunxl #16 我可以不用,但是我不能不学(跑 简单的场景也很多,是没必要搞这么复杂就是,我学下来感觉,整个就很像 MVC 设计模式的味道,view 触发了 controller,controller 开始触发各种 action,整体下来做了个简单的事务。 如果可以改成 controller + 注解 action 的模式我感觉负担会少很多,为了理解绕来绕去的例子,我算是花了不少功夫。 |
18 alexsunxl 2019-03-11 17:09:38 +08:00 @wly19960911 完全可以不学, 你去看看 elm 的视频就知道了, 没有对比没有伤害 |
![]() | 19 wengjin456123 2019-03-11 19:45:32 +08:00 via Android redux redux saga 我认为太繁琐了…文档这种也没 vuex mobx 舒服 |
![]() | 20 wengjin456123 2019-03-11 19:46:09 +08:00 via Android 不过已经学会…下个项目不用了 |
![]() | 21 hirasawayui 2019-03-11 23:22:58 +08:00 mobx vuex 真香,我再也不会用 redux 了 |