键值型数据库
关系型数据库
向量数据库(这个我是一次没用过)
不过我今天要讲的是 PersistenceV2 ,这个方案需要@ComponentV2才能使用,有一定的局限性,但是只要排除这个,我个人认为就是最方便的持久化方案,主要是用来设计UI状态的的持久化。
接下来直接上案例
这是一个鸿蒙的提词器,我需要设置一些字体相关的配置,下面是UI效果
代码
变量声明
@ObservedV2export class TeleprompterSettings { // 对于复杂对象需要@Type修饰,确保序列化成功 @Trace fontSize: number = 20; @Trace lineSpacing: number = 20; @Trace leftSpacing: number = 10; @Trace rightSpacing: number = 10; @Trace isBold: boolean = false; @Trace isFlipHorizontal: boolean = false; @Trace isUpperCase: boolean = false; @Trace isIndicatorEnabled: boolean = true; @Trace indicatorPositionPercent: number = 50; @Trace indicatorColor: string = "#ffffff"; @Trace indicatorThickness: number = 40; @Trace indicatorOpacity: number = 65; @Trace speed: number = 10; @Trace fontColor: string = defaultThemes[0][0]; @Trace backgroundColor: string = defaultThemes[0][1]; @Trace highlightColor: string = defaultThemes[0][2]; @Trace isKeepHighlightBrackets: boolean = false; }
组件内代码调用
@ComponentV2struct Teleprompter { @Local settings: TeleprompterSettings = PersistenceV2.connect(TeleprompterSettings, () => new TeleprompterSettings())!;}
后续你就可以直接这样改变变量,并且自动做持久化处理
this.settings.fontSize = 30 // 例如这里是改变字体大小
总结:只要是保存UI状态的持久化,都可以用这个来实现,相当简单好用,好了,下课。