TinyBase 基础教程:数据写入操作详解

TinyBase 基础教程:数据写入操作详解

tinybase The reactive data store for local‑first apps. tinybase 项目地址: https://gitcode.com/gh_mirrors/ti/tinybase

前言

TinyBase 是一个轻量级的状态管理库,它提供了简洁高效的数据存储和操作方式。本文将重点介绍如何在 TinyBase 中进行数据写入操作,包括数据的添加、修改和删除等基本操作。

TinyBase 数据结构概述

在开始学习写入操作前,我们需要了解 TinyBase 的核心数据结构。TinyBase 的 Store 包含两种主要数据类型:

  1. 键值数据(Values):简单的键值对结构
  2. 表格数据(Tables):具有层级结构的表格数据

表格数据的层级结构如下:

  • Store 包含多个 Table
  • 每个 Table 包含多个 Row
  • 每个 Row 包含多个 Cell

这种层级结构使得 TinyBase 既能处理简单的键值数据,也能处理复杂的表格数据。

创建 Store 实例

在开始写入数据前,我们需要先创建一个 Store 实例:

import {createStore} from 'tinybase';

const store = createStore();

写入键值数据(Values)

批量写入 Values

我们可以使用 setValues 方法一次性设置多个键值对:

store.setValues({employees: 3, open: true});

这将设置两个键值对:

  • employees 的值为 3
  • open 的值为 true

单个 Value 操作

如果只需要设置单个值,可以使用 setValue 方法:

store.setValue('employees', 4);

这将把 employees 的值从 3 更新为 4

写入表格数据(Tables)

批量写入 Tables

使用 setTables 方法可以设置整个表格结构:

store.setTables({pets: {fido: {species: 'dog'}}});

这创建了一个名为 pets 的表格,其中包含一行数据:

  • 行 ID 为 fido
  • 该行包含一个名为 species 的单元格,值为 'dog'

分层级写入

TinyBase 提供了不同层级的写入方法,可以根据需要灵活选择:

  1. 设置整个表格setTable

    store.setTable('species', {dog: {price: 5}});
    
  2. 设置单行数据setRow

    store.setRow('species', 'cat', {price: 4});
    
  3. 设置单个单元格setCell

    store.setCell('pets', 'fido', 'color', 'brown');
    

特殊写入方法

TinyBase 还提供了一些特殊的写入方法:

  1. 自动生成行 IDaddRow

    const rowId = store.addRow('pets', {species: 'cat'});
    
  2. 部分更新行数据setPartialRow

    store.setPartialRow('pets', 'fido', {color: 'black'});
    

数据类型限制

在 TinyBase 中,Value 和 Cell 支持以下数据类型:

  • 字符串(String)
  • 数字(Number)
  • 布尔值(Boolean)

数据删除操作

显式删除

TinyBase 提供了不同层级的删除方法:

  1. 删除单个 ValuedelValue

    store.delValue('employees');
    
  2. 删除整个表格delTable

    store.delTable('species');
    
  3. 删除单行数据delRow

    store.delRow('pets', 'fido');
    
  4. 删除单个单元格delCell

    store.delCell('pets', 'fido', 'color');
    

隐式删除

当设置数据时省略了之前存在的部分,也会导致隐式删除:

store.setRow('pets', 'fido', {species: 'dog'});
// 这将删除 fido 行中除 species 外的所有单元格

级联删除

TinyBase 有一个重要特性:Table 和 Row 不能为空。如果删除最后一个子元素,父元素也会被自动删除:

store.delCell('pets', 'fido', 'species');
// 如果这是 pets 表中 fido 行的最后一个单元格
// 那么 fido 行和 pets 表都会被自动删除

总结

本文详细介绍了 TinyBase 中的数据写入操作,包括:

  1. 键值数据(Values)的写入和删除
  2. 表格数据(Tables)的分层级写入和删除
  3. 特殊写入方法的使用
  4. 数据类型限制
  5. 显式和隐式删除操作
  6. 级联删除特性

掌握这些基本操作是使用 TinyBase 的基础。在实际开发中,可以根据具体需求选择合适的写入方法,灵活操作数据。

在下一篇文章中,我们将介绍如何从 TinyBase 中读取数据,完成数据的完整操作流程。

tinybase The reactive data store for local‑first apps. tinybase 项目地址: https://gitcode.com/gh_mirrors/ti/tinybase

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咎丹娜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值