文章目录

  • 一、shared_preferences 本地存储插件简介
  • 二、安装 shared_preferences 插件
  • 三、使用 shared_preferences 流程
  • 四、完整代码示例
  • 五、相关资源

一、shared_preferences 本地存储插件简介


shared_preferences 是 Flutter 提供的 本地数据存取 插件 ;

在不同的平台 , 基于不同的机制开发 , 如 Android 平台中基于 SharedPreferences 开发 , iOS 平台中基于 NSUserDefaults 开发 ;

访问本地文件是耗时操作 , 因此访问 shared_preferences 存储是一个 异步操作 ;

二、安装 shared_preferences 插件


安装 shared_preferences 插件 :

shared_preferences 插件地址 : https://pub.dev/packages/shared_preferences

按照 https://pub.dev/packages/shared_preferences/install 地址的安装教程进行安装 ;

首先 , 在 pubspec.yaml 配置文件中 , 导入插件包 :

dependencies:shared_preferences: ^2.0.7

然后 , 下载插件包 , 点击 Pub Get 按钮 , 下载插件包到本工程中 ;

最后 , 在 Dart 代码中导入如下代码 , 即可使用 shared_preferences ;

import 'package:shared_preferences/shared_preferences.dart';

三、使用 shared_preferences 流程


在完成了上述安装 shared_preferences 插件之后 , 才能开始使用 ;

首先 , 导入插件包 ;

import 'package:shared_preferences/shared_preferences.dart';

然后 , 获取 shared_preferences 实例 ;

final prefs = await SharedPreferences.getInstance();

最后 , 通过上述 shared_preferences 实例可以 设置 / 读取 存储的键值对数值 ;

/// 设置值
prefs.setInt('counter', counter);/// 获取值
final counter = prefs.getInt('counter') ?? 0;}

如果要删除数据 , 调用 shared_preferences 实例的 remove 方法 ;

prefs.remove('counter');

下图是 Flutter 的 SharedPreferences 类提供的所有方法 , 重点关注数据的访问方法 ;

数据存储示例 :

  _setValue() async {/// 先获取 SharedPreferences 实例SharedPreferences prefs = await SharedPreferences.getInstance();setState(() {textInfo = '保存字符串 " 小王 " 到 shared_preferences 完成';});/// 将数据保存到 SharedPreferences 中await prefs.setString("name", "小王");}

数据访问示例 :

  _getValue() async {/// 先获取 SharedPreferences 实例SharedPreferences prefs = await SharedPreferences.getInstance();/// 从 SharedPreferences 获取数据String? name = await prefs.getString("name");setState(() {textInfo = '从 shared_preferences 取出数据 " ${name} "';});}

四、完整代码示例


import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';void main() {runApp(MyApp());
}class MyApp extends StatefulWidget {const MyApp({Key? key}) : super(key: key);@override_MyAppState createState() => _MyAppState();
}class _MyAppState extends State<MyApp> {String textInfo = "点击按钮保存数据到 shared_preferences 中";_setValue() async {/// 先获取 SharedPreferences 实例SharedPreferences prefs = await SharedPreferences.getInstance();setState(() {textInfo = '保存字符串 " 小王 " 到 shared_preferences 完成';});/// 将数据保存到 SharedPreferences 中await prefs.setString("name", "小王");}_getValue() async {/// 先获取 SharedPreferences 实例SharedPreferences prefs = await SharedPreferences.getInstance();/// 从 SharedPreferences 获取数据String? name = await prefs.getString("name");setState(() {textInfo = '从 shared_preferences 取出数据 " ${name} "';});}@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: Text("shared_preferences 数据访问"),),body: Column(children: [Text(textInfo),ElevatedButton(onPressed: (){_setValue();},child: Text("存储数据到 shared_preferences 中"),),ElevatedButton(onPressed: (){_getValue();},child: Text("从 shared_preferences 中获取数据"),),],),),);}
}

执行结果 :

五、相关资源


参考资料 :

  • Flutter 官网 : https://flutter.dev/
  • Flutter 插件下载地址 : https://pub.dev/packages
  • Flutter 开发文档 : https://flutter.cn/docs ( 强烈推荐 )
  • 官方 GitHub 地址 : https://github.com/flutter
  • Flutter 中文社区 : https://flutter.cn/
  • Flutter 实用教程 : https://flutter.cn/docs/cookbook
  • Flutter CodeLab : https://codelabs.flutter-io.cn/
  • Dart 中文文档 : https://dart.cn/
  • Dart 开发者官网 : https://api.dart.dev/
  • Flutter 中文网 : https://flutterchina.club/ , http://flutter.axuer.com/docs/
  • Flutter 相关问题 : https://flutterchina.club/faq/ ( 入门阶段推荐看一遍 )
  • GitHub 上的 Flutter 开源示例 : https://download.csdn.net/download/han1202012/15989510
  • Flutter 实战电子书 : https://book.flutterchina.club/chapter1/
  • Dart 语言练习网站 : https://dartpad.dartlang.org/

重要的专题 :

  • Flutter 动画参考文档 : https://flutterchina.club/animations/

博客源码下载 :

  • GitHub 地址 : https://github.com/han1202012/flutter_shared_preferences ( 随博客进度一直更新 , 有可能没有本博客的源码 )

  • 博客源码快照 : ( 本篇博客的源码快照 , 可以找到本博客的源码 )

【Flutter】shared_preferences 本地存储 ( 简介 | 安装 shared_preferences 插件 | 使用 shared_preferences 流程 )相关推荐

  1. flutter实现本地存储

    flutter实现本地存储 实现本地存储用到的插件是shared_preferences shared_preferences地址为:https://pub.dev/packages/shared_p ...

  2. flutter中本地存储shared_preferences的使用

    首先在 pubspec.yaml 文件中添加 shared_preferences 引用并 Packages get dependencies:flutter:sdk: flutter# The fo ...

  3. 【Flutter】Flutter 拍照示例 ( 创建应用 | 安装 image_picker 插件 )

    文章目录 一.Flutter 创建新应用 二.安装 image_picker 插件 三.相关资源 一.Flutter 创建新应用 创建 Flutter 应用 , 选择 菜单栏 / File / New ...

  4. windows 10 平台安装 vim 插件 YouCompleteMe 详细流程

    配置流程 0. 编译和安装环境 Visual Studio Build Tools 2019 (或直接安装 VS2019) CMake Python (作者安装时使用的是 Python3) vim 1 ...

  5. flutter 本地存储数据(shared_preferences)

    一.shared_preferences 本地存储插件简介 shared_preferences 是 Flutter 提供的 本地数据存取 插件 ; 在不同的平台 , 基于不同的机制开发 , 如 An ...

  6. JavaScript 本地存储

    文章目录 1.本地存储简介 2.window.sessionStorage 3.window.localStorage 4.记住用户名 1.本地存储简介 随着互联网的快速发展,基于网页的应用越来越普遍 ...

  7. 腾讯云cos html,腾讯云对象存储(COS)插件安装设置图文教程

    腾讯云对象存储(COS)插件是腾讯云官方开发的针对在 wordpress中使用腾讯云对象存储cos的用户开发的辅助插件.通过在 wordpress程序中安装插件的方式,很方便的把WordPress静态 ...

  8. Vue | 使用Vue脚手架 【脚手架的基本使用+ref属性+props属性+mixin混入+插件scoped样式+TodoList+浏览器本地存储+组件的自定义事件+全局事件总线+过度与动画】

    文章目录 脚手架的基本使用 初始化脚手架 分析脚手架结构 render函数 修改默认配置 ref属性 props属性 mixin混入 插件 scoped样式 Todo-list案例 组件化编码流程(通 ...

  9. JS9day(BOM对象模型,setTimeout定时器,JS单线程执行机制,location对象,swiper插件,localStorage本地存储,购物车案例升级版,学习信息案例(本地存储))

    文章目录 BOM简介 定时器-延时函数 5秒关闭广告案例 递归模拟setInterval函数 两种定时器对比 JS 执行机制 location对象 navigator对象 histroy对象(了解) ...

最新文章

  1. 【2015沈阳现场A】
  2. 8天 = 4万元奖金 + CNCC参会资助 | 2019科研文本理解比赛
  3. 数据处理之判断值是否为nan(空值)记录
  4. poj 1256 Anagram—next_permutation的神奇应用
  5. iPhone 13全系价格曝光:顶配售价将达新高
  6. java对象转json
  7. 华为的薪酬体系整体框架,值得收藏
  8. 存储基础知识 - 网络存储主要技术
  9. 常用的简单的ps快捷键
  10. 【FFmpeg系列】使用FFmpeg实现视频图像旋转、翻转或转置
  11. python输入名字、输出_Python输入输出
  12. 解决XP系统每次关机都自动重启问题
  13. 转自【MDCC技术大咖秀】Android内存优化之OOM
  14. python程序设计基础之注释
  15. ELO(埃洛匹配分制度)Java篇
  16. 将baml 转换为xaml_将XAML实施SAML
  17. jQuery —— JavaScript 库
  18. 物联lot是什么意思_新一代基于物联网NB-loT技术的智能共享单车解决
  19. 前端特效CSS样式樱花
  20. 电子产品设计的流程有哪些

热门文章

  1. 黑马vue---13、事件修饰符的介绍
  2. 石川es6课程---12、Promise
  3. 深入理解面向对象 -- 基于 JavaScript 实现
  4. JavaScript深拷贝—我遇到的应用场景
  5. JavaScript基础:比较运算符——==与 ===;!=与!==
  6. MVC 下 JsonResult 的使用方法(JsonRequestBehavior.AllowGet)转
  7. 两个月后才更新一篇。。。。LIB和DLL的差别
  8. MLlib 编程指导-spark-1.2.0
  9. 数学图形(1.21)蚌线
  10. Spring使用支付宝扫码支付