HarmonyOS学习笔记—兼容JS的类Web开发范式客户端数据存储

<div class="container">
    <button type="capsule" onclick="writeTempDatas">临时存数据 userInfo</button>
    <button type="capsule" onclick="writeTempDatas2">临时存数据 appInfo</button>

    <button type="capsule" onclick="readDatas">读取信息 userInfo</button>
    <button type="capsule" onclick="readDatas2">读取信息 appInfo</button>
    <button type="capsule" onclick="readAllDatas">读取全部信息</button>

    <button type="capsule" onclick="delSpecfiyKeyDatas">从实例中删除指定key数据</button>
    <button type="capsule" onclick="delAllKeyDatas">从实例中删除所有key数据</button>

    <button type="capsule" onclick="saveDatas">持久化存数据</button>

    <button type="capsule" onclick="delSpecfiyPreferences">delete内存中指定的preferences实例</button>
    <button type="capsule" onclick="removeSpecfiyPreferences">remove内存中指定的preferences实例</button>
    
    <button onclick="goLogin">去登录页面</button>
</div>
.container {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
}

button {
    width: 100%;
    height: 80px;
    margin: 20px;
}
import featureAbility from '@ohos.ability.featureAbility'
import dataPreferences from '@ohos.data.preferences'
import router from '@ohos.router'
export default {
    data: {
        title: ""
    },
    // 写入 userInfo
    writeTempDatas(){
        let context = featureAbility.getContext()

        // 获取Preference 存储实例,因为 put get flsuh等都是此实例的接口
        dataPreferences.getPreferences(context, 'myStore', (err, preferences)=>{
            // 要存储的key,存储的值 value
            // put 临时的信息,会随着应用的关闭而释放
            preferences.put('userInfo', ['xiaoyi','sri'], err=>{
                if (!err) {
                    console.log('muzi,userInfo写入成功')
                } else {
                    console.log('muzi,userInfo写入失败', JSON.stringify(err))
                    return
                }
            })
        })
    },
    // 写入 appInfo
    writeTempDatas2(){
        let context = featureAbility.getContext()

        // 获取Preference 存储实例,因为 put get flsuh等都是此实例的接口
        dataPreferences.getPreferences(context, 'myStore', (err, preferences)=>{
            // 要存储的key,存储的值 value
            // put 临时的信息,会随着应用的关闭而释放
            preferences.put('appInfo', 100, err=>{
                if (!err) {
                    console.log('muzi,appInfo写入成功')
                } else {
                    console.log('muzi,appInfo写入失败', JSON.stringify(err))
                    return
                }
            })
        })
    },
    // 持久化数据 userInfo
    saveDatas(){
        let context = featureAbility.getContext()

        dataPreferences.getPreferences(context, 'myStore', (err, preferences)=>{
            preferences.put('userInfo', ['xiaoyi','sri'], err=>{
                if (!err) {
                    console.log('muzi,userInfo写入成功')
                    // 持久化,异步存储到用户首选项的之旧话文件中 随着应用的卸载而释放
                    preferences.flush(err=>{
                        if (!err) {
                            console.log('muzi,userInfo持久化存储成功')
                        } else {
                            console.log('muzi,userInfo持久化存储失败', JSON.stringify(err))
                            return
                        }
                    })
                } else {
                    console.log('muzi,userInfo写入失败', JSON.stringify(err))
                    return
                }
            })
        })
    },
    // 读取 userInfo
    readDatas(){
        let context = featureAbility.getContext()

        dataPreferences.getPreferences(context, 'myStore', (err, preferences)=>{
            // 要读取的信息key,如果值为null,使用defvalue代替返回值
            preferences.get('userInfo', 'userInfo没有数据', (err, value)=>{
                if (!err) {
                    console.log('muzi,userInfo读取成功', value)
                } else {
                    console.log('muzi,userInfo读取失败',JSON.stringify(err))
                    return
                }
            })
        })
    },
    // 读取 appInfo
    readDatas2(){
        let context = featureAbility.getContext()

        dataPreferences.getPreferences(context, 'myStore', (err, preferences)=>{
            // 要读取的信息key,如果值为null,使用defvalue代替返回值
            preferences.get('appInfo', 'appInfo没有数据', (err, value)=>{
                if (!err) {
                    console.log('muzi,appInfo读取成功', value)
                } else {
                    console.log('muzi,appInfo读取失败',JSON.stringify(err))
                    return
                }
            })
        })
    },
    // 读取所有信息
    readAllDatas(){
        let context = featureAbility.getContext()

        dataPreferences.getPreferences(context, 'myStore', (err, preferences)=>{
            // 要读取的信息key,如果值为null,使用defvalue代替返回值
            preferences.getAll((err, value)=>{
                if (!err) {
                    console.log('muzi,读取所有信息成功', JSON.stringify(value))
                } else {
                    console.log('muzi,读取所有信息失败',JSON.stringify(err))
                    return
                }
            })
        })
    },
    // 从实例中删除指定key数据
    delSpecfiyKeyDatas(){
        let context = featureAbility.getContext()

        dataPreferences.getPreferences(context, 'myStore', (err, preferences)=>{
            // 持久化文件,也会删除掉
            preferences.delete('userInfo', err=>{
                if (!err) {
                    console.log('muzi,删除指定key成功')
                } else {
                    console.log('muzi,删除指定key失败',JSON.stringify(err))
                    return
                }
            })
        })
    },
    // 从实例中所有指定key数据
    delAllKeyDatas(){
        let context = featureAbility.getContext()

        dataPreferences.getPreferences(context, 'myStore', (err, preferences)=>{
            // 清除当前实例中所有的存储
            preferences.clear(err=>{
                if (!err) {
                    console.log('muzi,删除所有key成功')
                } else {
                    console.log('muzi,删除所有key失败',JSON.stringify(err))
                    return
                }
            })
        })
    },
    // 删除内存中指定的Preferences实例
    delSpecfiyPreferences(){
        let context = featureAbility.getContext()
        // 从内存中移除指定的实例,如果存在持久化文件,也会删除,一旦调用该接口,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题
        dataPreferences.deletePreferences(context, 'myStore', (err, preferences)=>{
            if (!err) {
                console.log('muzi,删除内存中指定的Preferences实例成功')
            } else {
                console.log('muzi,删除内存中指定的Preferences实例失败',JSON.stringify(err))
                return
            }
        })
    },
    // 删除内存中指定的Preferences实例
    removeSpecfiyPreferences(){
        let context = featureAbility.getContext()
        // 从内存中移除指定的实例, 不会删除初持久化数据
        dataPreferences.removePreferencesFromCache(context, 'myStore', (err, preferences)=>{
            if (!err) {
                console.log('muzi,删除内存中指定的Preferences实例成功')
            } else {
                console.log('muzi,删除内存中指定的Preferences实例失败',JSON.stringify(err))
                return
            }
        })
    },
    // 跳转到登录页
    goLogin(){
        router.push({
            url: 'pages/login/login'
        })
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值