TinyBase 基础教程:数据写入操作详解
前言
TinyBase 是一个轻量级的状态管理库,它提供了简洁高效的数据存储和操作方式。本文将重点介绍如何在 TinyBase 中进行数据写入操作,包括数据的添加、修改和删除等基本操作。
TinyBase 数据结构概述
在开始学习写入操作前,我们需要了解 TinyBase 的核心数据结构。TinyBase 的 Store 包含两种主要数据类型:
- 键值数据(Values):简单的键值对结构
- 表格数据(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 提供了不同层级的写入方法,可以根据需要灵活选择:
-
设置整个表格:
setTable
store.setTable('species', {dog: {price: 5}});
-
设置单行数据:
setRow
store.setRow('species', 'cat', {price: 4});
-
设置单个单元格:
setCell
store.setCell('pets', 'fido', 'color', 'brown');
特殊写入方法
TinyBase 还提供了一些特殊的写入方法:
-
自动生成行 ID:
addRow
const rowId = store.addRow('pets', {species: 'cat'});
-
部分更新行数据:
setPartialRow
store.setPartialRow('pets', 'fido', {color: 'black'});
数据类型限制
在 TinyBase 中,Value 和 Cell 支持以下数据类型:
- 字符串(String)
- 数字(Number)
- 布尔值(Boolean)
数据删除操作
显式删除
TinyBase 提供了不同层级的删除方法:
-
删除单个 Value:
delValue
store.delValue('employees');
-
删除整个表格:
delTable
store.delTable('species');
-
删除单行数据:
delRow
store.delRow('pets', 'fido');
-
删除单个单元格:
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 中的数据写入操作,包括:
- 键值数据(Values)的写入和删除
- 表格数据(Tables)的分层级写入和删除
- 特殊写入方法的使用
- 数据类型限制
- 显式和隐式删除操作
- 级联删除特性
掌握这些基本操作是使用 TinyBase 的基础。在实际开发中,可以根据具体需求选择合适的写入方法,灵活操作数据。
在下一篇文章中,我们将介绍如何从 TinyBase 中读取数据,完成数据的完整操作流程。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考