Redux-ORM 项目教程
1. 项目的目录结构及介绍
Redux-ORM 项目的目录结构如下:
redux-orm/
├── docs/
├── examples/
├── src/
│ ├── components/
│ ├── core/
│ ├── db/
│ ├── index.js
│ ├── models/
│ ├── query/
│ ├── schema/
│ ├── selectors/
│ ├── session/
│ ├── utils/
│ └── validators/
├── test/
├── .gitignore
├── .npmignore
├── .travis.yml
├── LICENSE
├── README.md
├── package.json
├── webpack.common.js
├── webpack.dev.js
└── webpack.prod.js
目录介绍
- docs/: 包含项目的文档文件。
- examples/: 包含示例代码,展示如何使用 Redux-ORM。
- src/: 项目的源代码目录,包含核心功能、组件、模型、查询、选择器等。
- components/: 包含一些 UI 组件。
- core/: 核心功能的实现。
- db/: 数据库相关的代码。
- index.js: 项目的入口文件。
- models/: 定义模型的地方。
- query/: 查询相关的代码。
- schema/: 定义数据模式的地方。
- selectors/: 选择器相关的代码。
- session/: 会话管理相关的代码。
- utils/: 工具函数。
- validators/: 验证相关的代码。
- test/: 包含测试文件。
- .gitignore: Git 忽略文件。
- .npmignore: npm 忽略文件。
- .travis.yml: Travis CI 配置文件。
- LICENSE: 项目许可证。
- README.md: 项目介绍和使用说明。
- package.json: 项目依赖和脚本配置。
- webpack.common.js: Webpack 通用配置文件。
- webpack.dev.js: Webpack 开发环境配置文件。
- webpack.prod.js: Webpack 生产环境配置文件。
2. 项目的启动文件介绍
项目的启动文件是 src/index.js
,它是整个项目的入口点。这个文件负责初始化 Redux-ORM 并导出必要的模块和函数。
// src/index.js
import { createReducer, createSelector } from './core';
import { ORM } from './db';
import { Model, fk, oneToOne, many, attr } from './models';
import { createSchemaSelector } from './schema';
import { createSessionSelector } from './session';
import { createQuery } from './query';
import { createValidator } from './validators';
export {
createReducer,
createSelector,
ORM,
Model,
fk,
oneToOne,
many,
attr,
createSchemaSelector,
createSessionSelector,
createQuery,
createValidator,
};
3. 项目的配置文件介绍
package.json
package.json
文件包含了项目的依赖、脚本和其他元数据。
{
"name": "redux-orm",
"version": "0.16.2",
"description": "A small, simple and immutable ORM to manage relational data in your Redux store.",
"main": "lib/index.js",
"module": "es/index.js",
"scripts": {
"build": "make build",
"test": "make test",
"lint": "make lint",
"prepublishOnly": "npm run build"
},
"repository": {
"type": "git",
"url": "git+https://github.com/redux-orm/redux-orm.git"
},
"keywords": [
"redux",
"orm",
"state",
"state-management",
"frontend",
"javascript",
"crud"
],
"author": "Tommi Kaikkonen",
"license": "MIT",
"bugs": {
"url": "https://github.com/