Preferences 本地存储理解:轻量状态存储 原创
头像 码农小马 2026-06-03 14:26:04    发布
1 浏览 0 点赞 0 收藏

在写到稍微复杂一点的功能时,我第一次真正遇到了一个很具体的问题:有些数据不能只存在内存里。页面一刷新、应用一关闭,它就消失了,但实际使用中,这些信息是应该被“记住”的。

比如一些很典型的场景,用户是否开启某个功能、上一次的配置选项,或者一些简单的标记位。这时候就会开始找本地存储能力,对应在 HarmonyOS 里看到的是这样一个入口:

import dataPreferences from '@ohos.data.preferences'

第一次看到这个模块名的时候,其实就有点直觉上的提示了。它没有叫 storage,也没有叫 database,而是叫 preferences,这个命名本身就很偏向“偏好设置”。后来用了一段时间之后,发现这个直觉基本是对的。

慢慢会意识到,这个东西的核心能力其实很单一,它更像是一个长期存在的键值表。你用一个 key 存一个值,再用同一个 key 把它取出来。整个模型非常简单,没有复杂结构,也没有关系设计。如果硬要类比,其实很接近 Android 里的 SharedPreferences,本质上是在解决同一类问题。

一开始我会下意识把它当成“本地存储方案”,甚至有点像数据库的轻量替代。但这种理解很快就会遇到问题。因为一旦你试图往里面放稍微复杂一点的数据,就会发现用起来并不自然。结构一复杂,就需要自己做序列化;数据一多,管理就开始变得混乱;如果还想做筛选或者按条件读取,那基本就已经超出它的能力范围了。

这时候再回头看,其实问题不在工具本身,而在一开始的定位就错了。Preferences 并不是用来解决“数据管理”的,而是用来解决“状态持久化”的。它更适合那些零散的、小规模的、和状态强相关的数据,而不是一整块业务数据。


Preferences 不是用来“存数据”的,而是用来“记住一些状态”的。

这个认知一旦建立起来,后面在使用本地存储时,很多选择就会变得清晰很多。


©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
HarmonyOS
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 商务内容合作QQ:2291221 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除

京ICP备:2022009079号-2

京公网安备:11010502051901号

ICP证:京B2-20230255