# 项目简介

使用方法简单且易于扩展，只需在需要记录状态的节点上添加UIState组件，即可记录所有子节点（包含子孙节点）的状态改变

1. 支持嵌套UIState。子节点（子孙节点）也可以加UIState，维护自己的状态
2. 数据量小。仅记录修改的节点
3. 逻辑清晰易扩展。可以很方便的扩展记录的组件和属性，支持记录自定义组件

## 测试场景

嵌套UIState 		✔	父UIState节点不会保存子UIState节点的状态

新增节点			✔	在切换到其他状态前，所有状态会保持一致，切换过一次状态后，每个状态会保存自己的数据

新增节点并修改属性	✔	在切换到其他状态前，所有状态会保持一致，切换过一次状态后，每个状态会保存自己的数据

删除节点			✔	所有状态都会删除该节点

新增组件			✔	仅对当前状态生效，其他状态会禁用该组件

删除组件			✔	所有状态都会删除该组件

禁用组件			✔	仅对当前状态生效

## 组件测试

Label				✔

RichText			✔

Sprite				✔  特定情况下会出现SpriteFrame没有更新，点击 Creator 能够刷新。使用软刷新场景的接口，编辑器会闪一下，体验不是太好，不过可以保证显示正确

Widget				✔

## 构建发布测试

Web桌面				✔

## 开发环境

Node.js

## 安装

```bash
# 安装依赖模块
npm install
# 构建
npm run build
```
