码迷,mamicode.com
首页 > 其他好文 > 详细

Redux 源码阅读记录

时间:2019-10-08 12:25:31      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:函数   com   过程   多个   编译   代码   记录   returns   cti   

一,背景

Redux在mobx之前出现,redux基于Elm, flux, Immutable.js 的思想对状态管理重新做了优化。

在项目中使用时,Redux对数据更新和管理,可以很容易扩展插件,中间件等。

 

二,redux提供的api

1,compose

对传入的函数进行从右往左的方式编译,函数的合并。

代码实现如下:

/**
 * 从右往左,编译单个参数的函数。最右函数可以是多个参数的函数,提供单个编译函数。
 *
 * @param {...Function} funcs The functions to compose.
 * @returns {Function} A function obtained by composing the argument functions
 * from right to left. 
* For example, compose(f, g, h) is identical to doing * (...args) => f(g(h(...args))).
*/ function compose() { for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) { funcs[_key] = arguments[_key]; } if (funcs.length === 0) { return function (arg) { return arg; }; } if (funcs.length === 1) { return funcs[0]; } // reduce 多次回归调用,函数是一个包裹的过程,从左往右包裹,执行时从右往左执行。
// 最后返回一个可以执行所有函数的 函数!
return funcs.reduce(function (a, b) { return function () { return a(b.apply(void 0, arguments)); }; }); }

 

Redux 源码阅读记录

标签:函数   com   过程   多个   编译   代码   记录   returns   cti   

原文地址:https://www.cnblogs.com/the-last/p/11634455.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!