【HarmonyOS】API6使用storage实现轻量级数据存储

写在前面

本篇内容基于API6 JS语言进行开发,通过结合轻量级数据存储开发指导的文档,帮助大家完成一个实际的代码案例,通过这个小案例,可以实现简单数据的存储。

参考文档:文档中心

1、页面布局

首先我们编写一个简单的页面布局,页面中只有一个文本和两个按钮,文本用来展示存储的数据结果,按钮用来控制存储和获取数据,代码如下:

javascript 复制代码
<div class="container">
    <text>{{content}}</text>
    <div class="option">
        <button class="button" value="存储" "onclickSave"></button>
        <button class="button" value="获取" "onclickGet"></button>
    </div>
</div>

2、页面样式

然后我们简单处理一下页面的样式,代码如下:

javascript 复制代码
.container {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-top: 20px;
}
.option {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    margin-top: 20px;
    margin-right: 20px;
}
.button {
    font-size: 15px;
    text-align: center;
    margin-left: 10px;
    margin-right: 10px;
    width: 200px;
    height: 40px;
}

3、页面逻辑

最后,我们来实现页面中的数据存储以及数据获取的逻辑,相关代码参考本文开头部分的官网文档:

javascript 复制代码
import featureAbility from '@ohos.ability.featureAbility'; // 用于获取文件存储路径
import prompt from '@system.prompt';
import storage from '@ohos.data.storage';

export default {
    data: {
        content: "",
    },
    onclickSave() {
        var context = featureAbility.getContext();
        context.getFilesDir().then((filePath) => {
            storage.getStorage(filePath + '/mystore').then((storage) => {
                // 保存数据到缓存的storage实例中
                let getPromise = storage.put('qwe', true);
                getPromise.then(() => {
                    storage.flush();
                    console.info("jarchie---保存成功");
                }).catch((err) => {
                    console.info("jarchie---保存失败" + err);
                })
            }).catch((err) => {
                console.info("jarchie---获取storage失败" + err);
            })
        });
    },
    onclickGet() {
        var context = featureAbility.getContext();
        context.getFilesDir().then((filePath) => {
            storage.getStorage(filePath + '/mystore').then((storage) => {
                let getPromise = storage.get('qwe', false);
                getPromise.then((value) => {
                    this.content = value;
                    console.info("jarchie---" + this.content);
                    prompt.showToast({
                        message: this.content,
                        duration: 1000
                    })
                }).catch((err) => {
                    console.info("jarchie---" + err);
                })
            }).catch((err) => {
                console.info("jarchie---获取storage失败" + err)
            })
        });
    }
}

4、实现效果

相关推荐
贾伟康8 小时前
HarmonyOS API 26 Navigation 导航栏位置:navBarPosition、左右布局与折叠屏适配
harmonyos·arkts·arkui·navigation·折叠屏
贾伟康1 天前
HarmonyOS API 26 DevEco Code 需求到 ArkTS 骨架的提示词分层
harmonyos·arkts·ai coding·deveco code·工程提效
威哥爱编程1 天前
模拟面试智能体开发实战 02:回答等半分钟,谁还愿意练?把服务端和流式输出搭起来
python·agent·harmonyos
威哥爱编程1 天前
模拟面试智能体开发实战 01:面试挂了都不知道挂在哪?用 Python 给自己造一个随叫随到的 AI 面试官
python·agent·harmonyos
贾伟康1 天前
HarmonyOS API 26 HMAF Skill 可解释任务计划与失败回退
harmonyos·arkts·智能体·skill·hmaf
贾伟康1 天前
HarmonyOS API 26 HMAF 2.0 意图解析的可解释动作图
harmonyos·arkts·智能体·a2a·hmaf
KevinChaos1 天前
阳台小花园开发手记 03|HarmonyOS 7.0 互动卡片:叶片伸出边框仍与花盆对齐
华为·harmonyos
熬夜磕代码丶1 天前
RN鸿蒙空间音频实战
华为·音视频·harmonyos
行者-全栈开发1 天前
【鸿蒙心迹】通知与推送集成——emitter 本地通知与推送服务全链路(HarmonyOS 7.x)
华为·harmonyos
Nerd(BUG版)1 天前
鸿蒙API18~26新增V2组件全解析
microsoft·华为·harmonyos