首页
/ DatX:一种类型安全的JS/TS数据存储解决方案

DatX:一种类型安全的JS/TS数据存储解决方案

2025-05-21 12:08:30作者:田桥桑Industrious

1. 项目介绍

DatX 是一个具有明确观点的 JavaScript/TypeScript 数据存储库。它支持简单的属性定义、引用其他模型以及一流的类型支持。DatX 提供了一种管理应用程序状态的方法,通过模型和集合来组织数据,使得数据管理更加直观和类型安全。

2. 项目快速启动

首先,确保你的开发环境中安装了 Node.js。然后,按照以下步骤快速启动 DatX。

# 克隆仓库
git clone https://github.com/infinum/datx.git

# 进入项目目录
cd datx

# 安装依赖
npm install

# 运行示例
npm run example

以下是一个简单的示例,展示如何定义模型和集合:

import { Collection, Model, Field } from '@datx/core';

class Person extends Model {
  public static type = 'person';

  @Field() public name!: string;
  @Field() public surname!: string;
  @Field({ toOne: Person }) public spouse?: Person;

  public get fullName(): string {
    return `${this.name} ${this.surname}`;
  }
}

class AppData extends Collection {
  public static types = [Person];
}

const store = new AppData();
const john = store.add(new Person({ name: 'John', surname: 'Smith' }));
const jane = store.add({ name: 'Jane', surname: 'Smith', spouse: john }, Person);

3. 应用案例和最佳实践

定义模型

在 DatX 中,通过定义模型来描述数据结构。模型可以包含字段和关系,这些字段和关系通过装饰器 @Field() 来定义。

配置集合

集合是模型的容器,它保存了所有添加到集合中的模型实例。在定义集合时,需要指定集合可以包含的模型类型。

使用集合

集合提供了添加、删除、查找和更新模型实例的方法。这些方法使得管理应用程序状态变得更加简单。

数据持久化

DatX 支持本地数据持久化,使得状态可以在会话之间保持不变。

4. 典型生态项目

DatX 的生态系统包括一些扩展和插件,这些扩展和插件可以增强模型和集合的功能。以下是一些典型的生态项目:

  • datx-jsonapi:为模型、集合和视图添加 JSON API 特性。
  • withActions:为模型添加一些辅助方法。
  • withMeta:为模型添加一些有用的元数据。

通过整合这些生态项目,可以进一步扩展 DatX 的功能,满足不同应用程序的需求。

登录后查看全文