数据持久化
shared_preferences
:以key-value的方式保存到磁盘,适合存储的键值集合相对较少的情况SQLite
:数据库实现方案- 文件存储方案
这些方案在项目在chrome
运行时会失效。
shared_preferences
安装依赖
dart
flutter pub add shared_preferences
dart
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
void main() => runApp(const MyApp());
class Storage {
Storage();
// 获取缓存数据
getData(String key) async{
var prefs = await SharedPreferences.getInstance();
return prefs.getString(key);
}
// 设置缓存数据
setData(String key, String value) async{
var prefs = await SharedPreferences.getInstance();
prefs.setString(key, value);
}
// 删除缓存数据
removeData(String key) async{
var prefs = await SharedPreferences.getInstance();
await prefs.remove(key);
}
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'test',
home: Scaffold(
appBar: AppBar(
title: const Text('text'),
),
body: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
padding: const EdgeInsets.fromLTRB(0, 0, 20, 0),
child: ElevatedButton(
onPressed: () async{
final store = Storage();
await store.setData('name', 'lisi');
print("按钮的单击事件");
},
child: const Text("设置缓存")),
),
Padding(
padding: const EdgeInsets.fromLTRB(0, 0, 20, 0),
child: ElevatedButton(
onPressed: () async{
final store = Storage();
await store.removeData('name');
},
child: const Text("删除缓存")),
),
ElevatedButton(
onPressed: () async{
final store = Storage();
var storeName = await store.getData('name');
print(storeName);
},
child: const Text("获取缓存")),
],
)
)
)
);
}
}