uniapp 本地存储的方式

1. uniapp 本地存储的方式

在uniapp开发中,本地存储是一个常见的需求。本地存储可以帮助我们在客户端保存和管理数据,以便在应用程序中进行持久化存储。本文将介绍uniapp中本地存储的几种方式,以及相关的代码示例。

1.1. 介绍

在移动应用开发中,我们经常需要将一些数据保存在客户端,比如用户的个人设置、应用的配置信息等。uniapp提供了多种本地存储的方式,包括localStorage、sessionStorage、uni.setStorageSync和uni.setStorage等。接下来,我们将逐一介绍这些方式,并给出相应的代码示例。

uniapp本地存储的几种方式

(1)localStorage:使用浏览器提供的localStorage API进行本地存储,可以存储字符串类型的数据,并且在同一域名下的所有页面共享。

(2)sessionStorage:与localStorage类似,但是数据只在当前会话期间有效,一旦会话结束就会被清除。

(3)uni.setStorageSync和uni.getStorageSync:uniapp提供的API,可以将数据存储在本地文件中,可以存储各种类型的数据,包括对象和数组。

(4)uni.setStorage和uni.getStorage:与uni.setStorageSync和uni.getStorageSync类似,但是使用异步方式进行存储和获取数据。

这些方式可以根据实际需求选择合适的方式进行本地存储。

1.2. 使用本地存储的好处

uniapp使用本地存储的好处包括:

(1)数据持久化:本地存储可以将数据保存在用户设备上,即使用户关闭应用或重启设备,数据仍然可以被保留。

(2)减少网络请求:通过本地存储可以缓存一些常用的数据,减少对服务器的请求,提高应用的性能和加载速度。

(3)离线访问:本地存储可以使应用在没有网络连接的情况下仍然能够访问一些数据,提高用户体验。

1.3. 方法

1.3.1. localStorage

localStorage是HTML5标准中定义的用于客户端存储的API。在uniapp中,我们可以直接使用localStorage来进行本地存储。
(1)说明

javascript 复制代码
// 将数据存储到localStorage中
localStorage.setItem('key', 'value');
// 从localStorage中获取数据
var value = localStorage.getItem('key');

(2)实例

javascript 复制代码
 /**
 * localStorage数据存储
 */
localStorageData: function () {
    // 将数据存储到localStorage中
    localStorage.setItem('SP_NAME', 'zzs');
    // 从localStorage中获取数据
    var value = localStorage.getItem('SP_NAME');
   console.log("从localStorage中获取数据:",value)
},

1.3.2. sessionStorage

sessionStorage也是HTML5标准中定义的用于客户端存储的API,它与localStorage的区别在于数据只在当前会话期间有效。在uniapp中,我们同样可以直接使用sessionStorage来进行本地存储。
(1)说明

javascript 复制代码
// 将数据存储到sessionStorage中
sessionStorage.setItem('key', 'value');
// 从sessionStorage中获取数据
var value = sessionStorage.getItem('key');

(2)实例

javascript 复制代码
 /**
 * sessionStorage数据存储
 */
sessionStorageData: function () {
    // 将数据存储到sessionStorage中
    sessionStorage.setItem('SP_NAME2', 'zzs2');
    // 从sessionStorage中获取数据
    var value = sessionStorage.getItem('SP_NAME2');
   console.log("从sessionStorage中获取数据:",value)
},

1.3.3. uni.setStorageSync

uni.setStorageSync是uniapp提供的本地存储方法之一,它可以将数据同步存储到本地。
(1)说明

javascript 复制代码
// 将数据存储到本地
uni.setStorageSync('key', 'value');
// 从本地获取数据
var value = uni.getStorageSync('key');

(2)实例

javascript 复制代码
/**
* setStorageSync数据存储
*/
setStorageSyncData: function () {
   // 将数据存储到本地
  uni.setStorageSync('SP_NAME3', 'zzs3');
  // 从本地获取数据
  var value = uni.getStorageSync('SP_NAME3');
 console.log("从setStorageSyncData中获取数据:", value)
},

1.3.4. uni.setStorage

uni.setStorage是uniapp提供的另一种本地存储方法,它可以将数据异步存储到本地。
(1)说明

javascript 复制代码
// 将数据异步存储到本地
uni.setStorage({
  key: 'key',
  data: 'value',
  success: function () {
    // 存储成功的逻辑
  }
});
// 从本地异步获取数据
uni.getStorage({
  key: 'key',
  success: function (res) {
    var value = res.data;
    // 获取数据成功的逻辑
  }
});

(2)实例

javascript 复制代码
/**
* setStorage数据存储
*/
setStorageData: function () {
    // 将数据异步存储到本地
    uni.setStorage({
        key: 'SP_NAME4',
        data: 'zzs4',
        success: function () {
        // 存储成功的逻辑
       }
   });
    // 从本地异步获取数据
    uni.getStorage({
         key: 'SP_NAME4',
        success: function (res) {
             var value = res.data;
            // 获取数据成功的逻辑
            console.log("从setStorage中获取数据:", value)
        }
    });
},

1.4. 完整代码

javascript 复制代码
<template>
    <view>

    </view>
</template>

<script>
    export default {
        data() {
            return {}
        },
        onLoad: function () {
            var that = this;
            //localStorage数据存储
            that.localStorageData()
            //sessionStorage数据存储
            that.sessionStorageData()
            //setStorageSync数据存储
            that.setStorageSyncData()
            //setStorage数据存储
            that.setStorageData()
        },
        methods: {
            /**
             * localStorage数据存储
             */
            localStorageData: function () {
                // 将数据存储到localStorage中
                localStorage.setItem('SP_NAME', 'zzs');
                // 从localStorage中获取数据
                var value = localStorage.getItem('SP_NAME');
                console.log("从localStorage中获取数据:", value)
            },
            /**
             * sessionStorage数据存储
             */
            sessionStorageData: function () {
                // 将数据存储到sessionStorage中
                sessionStorage.setItem('SP_NAME2', 'zzs2');
                var value = sessionStorage.getItem('SP_NAME2');
                console.log("从sessionStorage中获取数据:", value)
            },
            /**
             * setStorageSync数据存储
             */
            setStorageSyncData: function () {
                // 将数据存储到本地
                uni.setStorageSync('SP_NAME3', 'zzs3');
                // 从本地获取数据
                var value = uni.getStorageSync('SP_NAME3');
                console.log("从setStorageSync中获取数据:", value)
            },
            /**
             * setStorage数据存储
             */
            setStorageData: function () {
                // 将数据异步存储到本地
                uni.setStorage({
                    key: 'SP_NAME4',
                    data: 'zzs4',
                    success: function () {
                        // 存储成功的逻辑
                    }
                });
                // 从本地异步获取数据
                uni.getStorage({
                    key: 'SP_NAME4',
                    success: function (res) {
                        var value = res.data;
                        // 获取数据成功的逻辑
                        console.log("从setStorage中获取数据:", value)
                    }
                });
            },
        }
    }
</script>
<style>
</style>

1.5. 结论

本文介绍了uniapp中本地存储的几种方式,包括localStorage、sessionStorage、uni.setStorageSync和uni.setStorage。通过这些方式,我们可以方便地在uniapp应用中进行本地数据的存储和管理。根据具体的需求和场景,我们可以选择合适的方式来进行本地存储操作。希望本文能够帮助读者更好地理解uniapp中本地存储的相关知识,并在实际开发中得到应用。

相关推荐
大叔_爱编程1 天前
基于用户评论的热点问题挖掘与反馈分析系统-django+spider+uniapp
python·django·uni-app·毕业设计·源码·课程设计·spider
源码潇潇和逸逸2 天前
独立部署高校圈子平台:PHP+UniApp打造社交+交易+服务一站式校园解决方案
开发语言·uni-app·php
2501_916008892 天前
2026 iOS 证书管理,告别钥匙串依赖,构建可复制的签名环境
android·ios·小程序·https·uni-app·iphone·webview
2501_915918412 天前
iOS App 拿不到数据怎么办?数据解密导出到分析结构方法
android·macos·ios·小程序·uni-app·cocoa·iphone
2501_916008892 天前
iOS App 抓包看不到内容,从有请求没数据一步步排查
android·ios·小程序·https·uni-app·iphone·webview
扶苏10022 天前
记一次 uni-app开发微信小程序 textarea 的“伪遮挡”踩坑实录
微信小程序·小程序·uni-app
RuoyiOffice3 天前
企业请假销假系统设计实战:一张表、一套流程、两段生命周期——BPM节点驱动的表单变形术
java·spring·uni-app·vue·产品运营·ruoyi·anti-design-vue
KongHen023 天前
uniapp-x实现自定义tabbar
前端·javascript·uni-app·unix
RuoyiOffice3 天前
SpringBoot+Vue3+Uniapp实现PC+APP双端考勤打卡设计:GPS围栏/内网双模打卡、节假日方案、定时预生成——附数据结构和核心源码讲解
java·spring·小程序·uni-app·vue·产品运营·ruoyi
2501_915921433 天前
2026 iOS 上架新趋势 iOS 发布流程模块化
android·ios·小程序·https·uni-app·iphone·webview