React实战-Flux中嵌套action的解决方法
来源:互联网 发布:德州扑克数据分析软件 编辑:程序博客网 时间:2024/06/13 22:02
创建React公众号(React实战)的初衷主要由以下几个原因:
一:目前处于一个较为休闲的状态。
二:工作多年后,对软件开发过程算的上一些体会,在学习和使用React中,总会不自觉的将React的实现方式与曾经的相比较,希望这也能给学习者一些启发。
三:忽然间,觉得文字表达的方式让我感到一些欣慰,虽然创建时间不长,关注不多,但只要有只言片语能给你一些帮助,就有意义了。欢迎转发:),不知道自己会写多久,也许是最后一篇,也许只是个开始。之前我订阅过一个大头妈妈讲故事的个人号,她每晚在卫生间录音,坚持了100多天,每晚给宝宝讲故事,但3个月前停止更新了,很是可惜,但我能感受到那份真心。
四:我本不太在意太多,每篇都是有话要说,每篇均是自身实战感悟,本不想关注细节,因为之前觉得框架有个清晰的了解,小的问题自然由google来解决,但发现浏览最多的居然是react中如何调用google、baidu地图,既然如此,我也会将开发过程中一些有趣的小问题分享。
进入正题吧,Flux是React官方的配套的数据控制方式,但是Redux势头更猛,个人使用的感觉,Flux更加随意,简单。但是充斥着大量的action,需要自己定义事件名,触发事件等,一个store中有很多个event.
事件多了,自然存在事件嵌套的情况,嵌套的方式也有两种:
一种:与后台数据调用的异步事件中嵌套。
deleteDataByID: function (id) {
DataResource.deleteDataByID(id).then(() => {
StatusDialogStore.pushMessage({title: '删除数据', body: '删除成功!', isFail: false});
this.searchData();
}, (e)=> {
StatusDialogStore.pushMessage({title: '删除数据', body: e.message, isFail: true});
});
},
注:deleteDataByID,searchData都关联一个flux事件
另一种:在前段代码段内部事件嵌套。
setSelectedDataByID(id){
_selectDataCenterID = id;
window.setTimeout(()=> {
this.emit(DATACHANGE_EVENT);
});
},
注:setSelectedDataByID,DATACHANGE_EVENT也都关联着一个事件。
其实从上述代码已经可以看出区别,在异步调用时,不需要做额外的处理,可以直接在回调函数中执行下一个事件调用。在同步代码段中去不允许,同一控制域中是不允许出现事件嵌套的,那么我们可以采用setTimeout函数去分离两个事件的控制域。
这也只是我采用的方式,也许会有更好的方式。
- React实战-Flux中嵌套action的解决方法
- React实战-如何构建React+Flux+Superagent的完整框架
- react中flux和redux解决的问题
- react Flux
- react flux
- react flux
- React实战-React中this的用法
- 自己对react中flux框架部分底层原理的理解
- react-native使用flux
- React Flux架构简介
- React Native + Flux
- flux与react
- React中的flux
- react之flux小结
- 谈一谈我对 React Flux 架构的理解
- React-Native Flux思想的学习与重构
- 构建具有用户身份认证的 React + Flux 应用程序
- react-native-router-flux(一)
- POJ3233 Matrix Power Series
- [BZOJ4832]抵制克苏恩(概率期望dp)
- Pandas 数据清洗
- 测海老龟博客初体验
- css 列表,导航,样式继承,outline轮廓
- React实战-Flux中嵌套action的解决方法
- JSP+Servlet学习经验1:解决form表单提交后相应页面中文乱码的问题
- 状态压缩or 最短路 poj2686
- GDOI2017模拟Round3总结
- 0410-1文字属性缩写2文本属性
- node.js的一些了解
- LeetCode:62. Unique Paths
- VirtualBox 中的 lineageOS,点击 Developer options,GUI 重启
- LintCode-Fizz Buzz问题