首页 > 其他分享 >Flutter 中常用的缓存数据方式

Flutter 中常用的缓存数据方式

时间:2023-12-27 09:35:30浏览次数:35  
标签:常用 SharedPreferences 存储 value 缓存数据 key prefs 数据 Flutter

SharedPreferences:

优点:使用简单,轻量级,适用于少量数据的缓存;缺点:不适合存储大型、结构化、复杂的数据;

SQLite:

优点:可以存储大量、结构化、复杂的数据,支持复杂的数据查询操作;缺点:比较复杂,需要学习 SQL 和数据库操作;

Hive:

优点:快速、可扩展,性能较好,适用于存储大量数据;缺点:不支持复杂的数据关系和查询操作;

Filesystem:

优点:可用于存储大文件或二进制数据,如图片和音频文件;缺点:需要自己处理文件读写操作;

Memory Cache:

优点:速度快,比较灵活,适用于需要快速访问的数据;缺点:可存储的数据大小会受到内存大小的影响。

 

如果场景比较简单,数据量比较小,则应该选择 SharedPreferences;如果数据量比较大且需要具有查询和管理功能,则 SQLite 和 Hive 两种方式都可以考虑使用;如果需要存储大数量的文件(如图片和音频文件),则应该选择 Filesystem。
如果需要快速访问的数据,则可以使用 Memory Cache,在内存中建立一个缓存,这样可以提高缓存访问的速度。

 flutter_secure_storage:

优点:自动清除缓存:当应用程序关闭或卸载时,flutter_secure_storage 会自动清除存储的数据,不需要开发人员手动处理;因此数据是加密的,即使设备被破解或者遭受恶意攻击,也很难解密数据;

SharedPreferences:
//1、导入SharedPreferences依赖库

dependencies:
  shared_preferences: ^2.0.6


//2、实例化SharedPreferences对象
import 'package:shared_preferences/shared_preferences.dart';

SharedPreferences prefs = await SharedPreferences.getInstance();


 //3、存储数据
// 存储字符串
prefs.setString(key, value);

// 存储布尔值
prefs.setBool(key, value);

// 存储整数
prefs.setInt(key, value);

// 存储双精度浮点数
prefs.setDouble(key, value);

// 存储字符串列表
prefs.setStringList(key, value);


  //4、获取数据

// 获取字符串
String stringValue = prefs.getString(key);

// 获取布尔值
bool boolValue = prefs.getBool(key);

// 获取整数
int intValue = prefs.getInt(key);

// 获取双精度浮点数
double doubleValue = prefs.getDouble(key);

// 获取字符串列表
List<String> stringListValue = prefs.getStringList(key);

 //5、删除数据

// 删除指定键的数据
prefs.remove(key);

// 删除所有数据
prefs.clear();
SQLite:
Hive:
Filesystem:
Memory Cache:

 

标签:常用,SharedPreferences,存储,value,缓存数据,key,prefs,数据,Flutter
From: https://www.cnblogs.com/xbinbin/p/17896182.html

相关文章

  • Linux的常用命令
    1.文件与目录的管理命令: 命令细节:ls : -l 展示详细信息,-a 展示隐藏文件(Linux下 . 开头的为隐藏文件) pwd:查看当前所在位置的绝对路径 cd:参数为绝对路径或者相对路径, cd后无参数则表示回到主目录 touch:表示新建文件 mkdir:创建目录 rm :删除表示直接......
  • Flutter获取大文件MD5值的方法以及大文件实现分块上传和断点续传
    Flutter获取大文件MD5值的方法最近一直在搞flutter,有一个需求是将一个不到1G的大文件从App端上传到服务器,为了做文件校验所以要获取到文件的MD5。1.第一步首先获取到文件,并计算出文件大小和分快的数目Filefile=File(path);intfileSize=file.lengthSync();inttotalPart=......
  • STL-常用容器-string
    3STL-常用容器3.1string容器3.1.1string基本概念本质:string是C++风格的字符串,而string本质上是一个类string和char*区别:char*是一个指针string是一个类,类内部封装了char*,管理这个字符串,是一个char型的容器。cplusplus.com/reference/string/string/也可打开上面这个网站查......
  • 软件测试/测试开发|Ubuntu系统常用文件管理命令详解
    前言Ubuntu是一种广泛使用的Linux操作系统,提供了丰富而强大的文件管理命令,使用户能够通过命令行轻松管理文件和目录。本文将介绍一些常用的Ubuntu文件管理命令,帮助用户更好地理解和利用系统资源。ls-列出目录内容ls[选项][目录]ls命令用于列出目录中的文件和子目录。......
  • Nginx常用配置
    项目配置示例HTTP:userroot;worker_processes1;events{worker_connections1024;}http{includemime.types;default_typeapplication/octet-stream;sendfileon;#tcp_nopushon;#keepalive_timeout0;keepa......
  • Spring应用最常用的工具类汇总
    文件资源访问假设有一个文件地址位于Web应用的类路径下,您可以通过以下方式对这个文件资源进行访问:FileSystemResource以文件系统绝对路径的方式进行访问;ClassPathResource以类路径的方式进行访问;ServletContextResource以相对于Web应用根目录的方式进行访问。Resourc......
  • Flutter 创建一个交错效果的侧边栏菜单
    一、创建一个没有动画效果的菜单import'package:flutter/material.dart';classMenuextendsStatefulWidget{constMenu({super.key});@overrideState<Menu>createState()=>_MenuState();}class_MenuStateextendsState<Menu>{staticc......
  • Flutter 页面专场动画
    在不同路由(或界面)之间进行切换的时候,许多设计语言,例如Material设计,都定义了一些标准行为。但有时自定义路由会让app看上去更加的独特。为了更好的完成这一点,PageRouteBuilder提供了一个Animation对象。这个Animation能够通过结合Tween以及Curve对象来自定义路由转换......
  • Flutter hero动画
    在Flutter中,图像从当前页面转到另一个页面称为hero动画,相同的动作有时也被称为共享元素过渡。hero动画基本结构在不同页面分别使用两个herowidgets,同时使用配对的标签来实现动画Navigator管理含有app页面的堆栈。推送一个页面或弹出一个Navigator堆栈中的页面会......
  • linux常用命令(笔记)
    1、telnet进去后怎么退出:telnet10.102.5.11922查看ip,端口通讯状况退出的话:Ctrl+]然后输入q退出,如下图:2、linux下查看tomcat版本curl172.16.45.231:8080|grep"ApacheTomcat"curlIP:端口|grep"ApacheTomcat"3、关于CPU命令——查看CPU型号cat/......