Immutable.js 使用教程
immutable-js项目地址:https://gitcode.com/gh_mirrors/imm/immutable-js
1. 项目的目录结构及介绍
Immutable.js 是一个用于 JavaScript 的不可变持久化数据集合库,由 Facebook 开发并维护。以下是其基本目录结构:
immutable-js/
├── dist/
│ ├── immutable.js
│ └── immutable.min.js
├── contrib/
│ ├── immutable-ext.js
│ └── ...
├── src/
│ ├── Map.js
│ ├── List.js
│ ├── Set.js
│ └── ...
├── test/
│ ├── Map-test.js
│ ├── List-test.js
│ └── ...
├── .gitignore
├── .npmignore
├── .travis.yml
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── package.json
└── tsconfig.json
目录介绍
- dist/: 包含编译后的 JavaScript 文件,包括压缩和未压缩版本。
- contrib/: 包含社区贡献的扩展和工具。
- src/: 包含库的核心源代码,如
Map
,List
,Set
等。 - test/: 包含单元测试文件。
- .gitignore: Git 忽略文件配置。
- .npmignore: npm 发布时忽略的文件配置。
- .travis.yml: Travis CI 配置文件。
- CONTRIBUTING.md: 贡献指南。
- LICENSE: 许可证文件。
- README.md: 项目介绍和使用说明。
- package.json: npm 包配置文件,包含依赖、脚本等信息。
- tsconfig.json: TypeScript 配置文件。
2. 项目的启动文件介绍
Immutable.js 的启动文件主要是 dist/
目录下的 immutable.js
或 immutable.min.js
。这些文件是编译后的库文件,可以直接在浏览器或 Node.js 环境中使用。
使用示例
在浏览器中使用:
<script src="path/to/immutable.min.js"></script>
<script>
const { Map } = Immutable;
const map1 = Map({ a: 1, b: 2, c: 3 });
const map2 = map1.set('b', 50);
console.log(map1.get('b') + ' vs ' + map2.get('b')); // 2 vs 50
</script>
在 Node.js 中使用:
const { Map } = require('immutable');
const map1 = Map({ a: 1, b: 2, c: 3 });
const map2 = map1.set('b', 50);
console.log(map1.get('b') + ' vs ' + map2.get('b')); // 2 vs 50
3. 项目的配置文件介绍
Immutable.js 的配置文件主要包括 package.json
和 tsconfig.json
。
package.json
package.json
文件包含了项目的元数据、依赖、脚本等信息。以下是一些关键字段:
{
"name": "immutable",
"version": "4.0.0",
"description": "Immutable persistent data collections for Javascript which increase efficiency and simplicity.",
"main": "dist/immutable.js",
"module": "dist/immutable.es.js",
"types": "dist/immutable.d.ts",
"scripts": {
"test": "jest",
"build": "rollup -c"
},
"dependencies": {},
"devDependencies": {
"typescript": "^4.0.0",
"jest": "^26.0.0"
},
"repository": {
"type": "git",
"url": "https://github.com/facebook/immutable-js.git"
},
"keywords": [
"immutable",
"persistent",
"datastructure",
"functional",
"collection",
"stateless",
"sequence",
"iteration"
],
"author": "Lee Byron",
"license": "MIT"
}
immutable-js项目地址:https://gitcode.com/gh_mirrors/imm/immutable-js