-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
学习资料 & 技术文章分享 #23
Comments
文件上传: |
一些可以想看源码的小的库: https://github.com/erikolson186/zangodb |
React.js 相关: |
You-Dont-Need-Momentjs 第三方库替代Moment.js的github文章 |
数据管理的另一个比较有名的库: |
reselect源码学习深度解析Reselect库源码
// 第一个参数是记忆函数,第二个参数常见的是给参数比较函数
var deepSeletor = createSelectorCreator(customMemoize, ...rest)
// 原函数定义:
export function createSelectorCreator(memoize, ...memoizeOptions) {
return (...funcs) => {
let recomputations = 0; // 步骤二计算的次数(统计作用)
const resultFunc = funcs.pop(); // 步骤二的结果函数,利用步骤一各个映射函数的结果作为输入,输出最终结果
const dependencies = getDependencies(funcs); // 步骤一所涉及的映射函数
/**
* 将步骤二的结果函数也包装成记忆函数
* 如果步骤二的函数被触发,将添加重新计算的次数
*/
const memoizedResultFunc = memoize(
function () {
recomputations++; // 实际计算次数加1
return resultFunc.apply(null, arguments);
},
...memoizeOptions // 这里把 调用 createSelectorCreator 的剩余参数传给了 记忆函数
);
// 如果选择器使用相同的参数进行调用,就无需进行步骤二的计算。
const selector = memoize(function () {
const params = []; // 要记忆的映射函数计算结果
const length = dependencies.length; // 映射函数的个数
for (let i = 0; i < length; i++) {
params.push(dependencies[i].apply(null, arguments));
}
// 把映射函数的计算结果传给步骤二的结果计算函数
return memoizedResultFunc.apply(null, params);
});
selector.resultFunc = resultFunc; // 步骤二的结果计算函数
selector.dependencies = dependencies; // 步骤一的映射计算函数数组
selector.recomputations = () => recomputations; // 获得步骤二的结果计算函数的执行次数
selector.resetRecomputations = () => recomputations = 0; // 重置步骤二的结果计算函数的执行次数
return selector;
};
}; |
Promise 相关Promise 规范 promise 的 社区实现
|
package.json |
技术文章分享
|
一些学习的文档,资料整理
typescript 相关:
https://ts.xcatliu.com/introduction/what-is-typescript.html
The text was updated successfully, but these errors were encountered: