Flutter Web持久化存储SharedPreferences原理

前言

在Flutter中,类似于Android,SharedPreferences 是一种用于持久化存储键值对数据的机制


实现原理

对于移动平台(如Android和iOS),SharedPreferences 利用了各自平台的持久化存储能力。在Android上,它使用轻量级的Key-Value存储系统,在iOS上,使用UserDefaults

对于Web平台,SharedPreferences 的实现有所不同,因为Web平台没有与Android或iOS相同的持久化存储机制。在Web上,SharedPreferences 的实现是基于浏览器的 localStorage 功能

注意要点

  1. localStorage:Web浏览器提供的一个持久化存储机制,允许网站存储键值对数据。它与会话存储(sessionStorage)类似,但它的数据在浏览器关闭后仍然保留

  2. 键值对存储 :和移动平台上的实现一样,SharedPreferences 在Web上也是通过键值对来存储数据的。但在Web端,这些数据被保存在浏览器的 localStorage

  3. 数据持久化 :使用 localStorage,数据会在用户的浏览器中持久化存储,即使关闭和重新打开浏览器,这些数据也会保留

  4. 限制 :由于它是基于浏览器的,localStorage 有一些限制,如存储容量限制(通常为5MB左右),并且只能存储字符串。因此,对于非字符串类型的数据,SharedPreferences 需要将其序列化为字符串,然后再进行存储


附言

需要注意的是,用户可以通过清除游览器数据来删除localStorage中的数据

相关推荐
程序员老刘·4 小时前
Flutter 3.44 更新要点:很重要但暂时先别升级
flutter·ai编程·跨平台开发·客户端开发
用户86284129549444 小时前
Flutter rxflare 计算属性 computed:自动依赖追踪 + 缓存(超实用)
flutter
用户86284129549444 小时前
Flutter rxflare 性能测试(最终推荐版):1000 列表极致优化・官方最佳写法
flutter
用户86284129549445 小时前
Flutter rxflare 响应式编程:.obs + Rx 组件极简实战
flutter
用户86284129549445 小时前
Flutter rxflare 响应式进阶:Map/List 精准字段更新(高性能实战)
前端·flutter
King老师6 小时前
Flutter 视频代理完全教程
flutter·音视频
恋猫de小郭6 小时前
AI 时代,谷歌都在 Android 官方做了哪些支持?
android·前端·flutter
愚者Pro19 小时前
Flutter Widget组件学习(专为 Uniapp 转 Flutter 定制)
vue.js·学习·flutter·uni-app
Flynt1 天前
升级Flutter 3.44,我踩了HCPP和AGP 9的坑
android·flutter·dart
程序员老刘1 天前
Flutter 3.44 更新要点:很重要但暂时先别升级
flutter·ai编程·客户端