Reselect 开源项目教程
reselect项目地址:https://gitcode.com/gh_mirrors/res/reselect
1. 项目的目录结构及介绍
Reselect 是一个用于创建记忆化选择器的库,主要用于 Redux 应用中优化性能。以下是 Reselect 项目的目录结构:
reselect/
├── src/
│ ├── index.js
│ ├── selector.js
│ ├── defaultMemoize.js
│ ├── createSelector.js
│ └── utils/
│ ├── assertIsFunction.js
│ ├── curry.js
│ └── lodashFn.js
├── test/
│ ├── selector.spec.js
│ ├── defaultMemoize.spec.js
│ ├── createSelector.spec.js
│ └── utils/
│ ├── assertIsFunction.spec.js
│ ├── curry.spec.js
│ └── lodashFn.spec.js
├── .babelrc
├── .eslintrc
├── .gitignore
├── .npmignore
├── .travis.yml
├── LICENSE
├── package.json
├── README.md
└── yarn.lock
目录结构介绍
src/
:包含 Reselect 的核心代码。index.js
:入口文件,导出所有主要功能。selector.js
:定义了基本的选择器功能。defaultMemoize.js
:提供了默认的记忆化功能。createSelector.js
:用于创建记忆化选择器的主要函数。utils/
:包含一些辅助函数。
test/
:包含项目的测试文件。.babelrc
:Babel 配置文件。.eslintrc
:ESLint 配置文件。.gitignore
:Git 忽略文件配置。.npmignore
:NPM 忽略文件配置。.travis.yml
:Travis CI 配置文件。LICENSE
:项目许可证。package.json
:项目依赖和脚本配置。README.md
:项目说明文档。yarn.lock
:Yarn 锁定文件。
2. 项目的启动文件介绍
Reselect 项目的启动文件是 src/index.js
,该文件导出了 Reselect 的主要功能,包括 createSelector
和其他辅助函数。
// src/index.js
export { default as createSelector } from './createSelector';
export { default as defaultMemoize } from './defaultMemoize';
export { createSelectorCreator, setCacheFunction } from './createSelector';
export { default as createStructuredSelector } from './utils/createStructuredSelector';
3. 项目的配置文件介绍
.babelrc
Babel 配置文件,用于转译 JavaScript 代码。
{
"presets": ["@babel/preset-env"]
}
.eslintrc
ESLint 配置文件,用于代码风格检查。
{
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
"env": {
"node": true,
"es6": true
}
}
package.json
项目依赖和脚本配置文件。
{
"name": "reselect",
"version": "4.0.0",
"description": "Selectors for Redux.",
"main": "lib/index.js",
"module": "es/index.js",
"scripts": {
"test": "jest",
"build": "rollup -c",
"prepublishOnly": "npm run build"
},
"dependencies": {
"lodash": "^4.17.15"
},
"devDependencies": {
"@babel/core": "^7.8.4",
"@babel/preset-env": "^7.8.4",
"babel-jest": "^25.1.0",
"eslint": "^6.8.0",
"jest": "^25.1.0",
"rollup": "^1.31.1",
"rollup-plugin-babel": "^4.3.3"
},
"peerDependencies": {
"redux": "^4.0.0"
}
}
以上是 Reselect 开源项目的教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。