redux进一步优化
1. 将原来的 mapStateToDispatch 中的函数提取出来,放在组件中,
如原来的:
function mapStateToProps(state, ownProps) {
return {
hasMore:state.getIn(['tabs','hasMore']),
}
}
function mapDispatchToProps(dispatch) {
return {
addTabList:(id,page,tabIndex) => {
dispatch(actionCreators.addTabList(id,page,tabIndex)); //在actionCreator中使用dispatch发送
}
}
}
export default connect(mapStateToProps, mapDispatchToProps)(Main);
改为:也就是所有的dispatch 放在actionCreator中
addTabList(id,page,tabIndex){
actionCreators.addTabList(id,page,tabIndex);
}
export default connect(mapStateToProps, null)(Main);
对应的actionCreator:
原来是:
export const addTabList = (cardId,page,tabIndex) => {
let currpage = page +1 ;
return(dispatch)=>{
dispatch(changeLoading(true));
API.requestRightList(cardId,currpage,tabIndex).then(function (response) {
dispatch(addList(response.result,currpage));
dispatch(changeLoading(false));
})
}
};
改为:异步await 去掉 return dispatch ,引入store 使用 store.dispatch (原来是store在最外层组件中引入,则每个子组件都可以使用dispatch ,现在是把dispatch放在了actionCreator,所以要引入store)
若没有 请求其他接口的,只是单纯的派发数据:
import store from '../../../store';
export const changeFlag = () => {
store.dispatch({
type: actionType.CHANGE_MORE_FLAG
})
}
否则的话:
export const addTabList = async(cardId,page,tabIndex) => {
let currpage = page +1 ;
store.dispatch(changeLoading(true));
let response = await API.requestRightList(cardId,currpage,tabIndex);
store.dispatch(addList(response.result,currpage));
store.dispatch(changeLoading(false));
};
redux进一步优化的更多相关文章
- EF之结构进一步优化
针对之前的使用,做了进一步优化 1.将DAL对象缓存起来 2.仓储类不依赖固定构造的DbContext,执行操作的时候,从线程中动态读取DbContext,这一步也是为了方便将DAL对象缓存起来,解决 ...
- 采用DTO和DAO对JDBC程序进行进一步优化
采用DTO和DAO对JDBC程序进行进一步优化 DTO:数据传输对象,主要用于远程调用等需要远程调用对象的地方DAO:数据访问对象,主要实现封装数据库的访问,通过它可以把数据库中的表转换成DTO类 引 ...
- 进一步优化SPA的首屏打开速度(模块化与懒载入) by 嗡
前言 单页应用的优点在于一次载入全部页面资源,利用本地计算能力渲染页面.提高页面切换速度与用户体验.但缺点在于全部页面资源将被一次性下载完,此时封装出来的静态资源包体积较大,使得第一次打开SPA页面时 ...
- SSE图像算法优化系列二十一:基于DCT变换图像去噪算法的进一步优化(100W像素30ms)。
在优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法(附源代码) 一文中,我们曾经优化过基于DCT变换的图像去噪算法,在那文所提供的Demo中,处理一副1000*1000左右的灰度噪音图像耗时 ...
- JavaScript中国象棋程序(8) - 进一步优化
在这最后一节,我们的主要工作是使用开局库.对根节点的搜索分离出来.以及引入PVS(Principal Variation Search,)主要变例搜索. 8.1.开局库 这一节我们引入book.js文 ...
- 进一步优化ListView
之前我已经分享过一篇:viewHodler的通用写法,就是专门用来优化listview的加载的,但是对于复杂的布局,我们还需要在listview滑动和不滑动时进行自己的处理,今天我看到一篇文章就是讲这 ...
- almond进一步优化requirejs
这里只是调侃一下,“杏仁”其实指的是almond,requirejs作者的另一个开源项目,它的定位是作为requirejs的一个替代品. 使用场景 什么情况下需要使用almond呢?假设你手头有个基于 ...
- SPFA算法 - Bellman-ford算法的进一步优化
2017-07-27 22:18:11 writer:pprp SPFA算法实质与Bellman-Ford算法的实质一样,每次都要去更新最短路径的估计值. 优化:只有那些在前一遍松弛中改变了距离点的 ...
- [置顶] 学习JDK源码:可进一步优化的代码
1.参数化类型的构造函数比较啰嗦 new HashMap<String, List<String>>() 如果你调用参数化类的构造函数,那么很不幸,你必须要指定类型参数,即便上 ...
随机推荐
- zookeeper之 zkServer.sh命令、zkCli.sh命令、四字命令
一.zkServer.sh 1.查看 zkServer.sh 帮助信息[root@bigdata05 bin]# ./zkServer.sh helpZooKeeper JMX enabled by ...
- js 奇偶判断
function isOdd(num) { == ; } function isEven(num) { == ; } function isSane(num) { return isEven(num) ...
- apache kafka技术分享系列(目录索引)
https://blog.csdn.net/lizhitao/article/details/39499283 https://blog.csdn.net/lizhitao
- 微信H5页面嵌入百度地图---解决手机的webKit定位,ios系统对非https网站不提供支持问题
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=yGQt ...
- Kayleigh O'Connor - I Won't Be There
Do you feel like you're about to drown The wave is rushing over you throw you onto now I remember th ...
- CentOS6上ftp服务器搭建实战
1.安装程序包 [root@node1 ~]$ yum install -y vsftpd[root@node1 ~]$ yum install -y lftp # 安装测试软件 2.启动vsftpd ...
- 关于contenteditable属性
今天刷刷看看,看到了发说说框,发现居然不是textarea的,百思不得其解围.后来看到contenteditable,心想应该就是这个搞怪的吧,百度了下.w3c的解释是contenteditable属 ...
- weex中使用sass(失败)
在编辑器中可以正常编写不报错 但是在页面上不起作用 <style lang="scss" scoped></style> 第一步 安装依赖 npm i ...
- js利用sort()方法实现数组排序
1.number类型排序 let aa = [1,11,2,4,3] aa.sort() console.log(aa) //[1,11,2,3,4] aa.sort((a,b)=>a-b) c ...
- laravel5.2加载自定义的aliyun扩展包
把文件夹加载进来 在 app.php里面注册 serviceprovider 在 app/filesystems.php 里面 加入相关的配置 把 cloud的值 改成对应的扩展 在.env文件里面完 ...