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 1
我之前用 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 1
@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 1
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 了
|