想象一下React应用程序,在这个页面上,有一些todo的列表,页面底部可以添加列表,该列表用redux来存储。如果用户添加了一个新的todo项。我有两个选择:
1.发一个post到后端,用来保存新添加的项,但此时todo列表不会同步更新,我可以同时发出get请求来获取数据,但这样感觉不太优雅。(我也不知道工作中是怎样弄的😐)
2.先发送post到后端,然后通过redux派发异步的action,在异步action中发送get请求获取数据,存入store中,并更新列表,但这样刷新之后就没了。
不知道我描述的清不清楚,就是这一类的情况应该怎么办。
你这就是一个权衡问题了,其实严格来说和 redux 关系也不大
一般情况下这样做:
改变数据(post(params)) => server (返回成功) => get 获取数据,刷新列表
至于数据怎么存储到 redux 里,你初始化怎么获取的数据(肯定是调了get接口获取到然后存到 redux里),所以 post 成功之后只要在
dispatch(getTodoList())
如果对性能要求比较严苛,post 成功之后就不能再调 get 了,而是直接把你调 post 时传递的参数直接塞到 todo list 里
dispatch(setTodoList(list))
,这样会减少一次数据请求开销另外个人觉得 post 的那次请求不应该和 redux 产生关联
拙见仅供参考😅