Flutter快速缓存管理插件quick_cache_flutter的使用
Flutter快速缓存管理插件quick_cache_flutter的使用
🚀 Quick Cache Flutter
通过一行代码安全地管理缓存,同时不牺牲性能。
功能特性
- ⚡ 快速:底层使用[Hive],确保高性能。
- 🔒 安全:加密所有存储的数据。
- ⏲️ 过期时间:可以为每个键设置失效时间。
- 😉 易于使用:单行代码实现
read
和write
操作。
入门指南
在runApp(Widget)
之前初始化QuickCacheFlutter
(在WidgetsFlutterBinding.ensureInitialized()
之后调用):
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await QuickCacheFlutter.instance.init();
runApp(const MyApp());
}
使用方法
- 📖
QuickCacheFlutter.instance.readCache
:读取给定键的值。 - ✍️
QuickCacheFlutter.instance.setCache
:在数据库中保存单个键值对。 - 🧹
QuickCacheFlutter.instance.removeAllCache
:清除数据库中的所有缓存。 - 🗑️
QuickCacheFlutter.instance.deleteValue
:删除单个值。
如果未提供expiryDuration
或将其设置为null
,则该值将一直存在,直到应用程序生命周期结束或手动删除。
QuickCacheFlutter.instance.setCache(
key: 'key',
value: value,
expiryDuration: const Duration(seconds: 20),
);
完整示例Demo
以下是一个完整的示例代码,展示了如何在Flutter应用中使用quick_cache_flutter
插件进行缓存管理。
import 'package:flutter/material.dart';
import 'package:quick_cache_flutter/quick_cache_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await QuickCacheFlutter.instance.init();
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
TextEditingController textEditingController = TextEditingController();
ValueNotifier<dynamic> cachedString = ValueNotifier('');
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
// 输入框
TextField(
controller: textEditingController,
decoration: InputDecoration(
labelText: '输入要缓存的文本',
border: OutlineInputBorder(),
),
),
SizedBox(height: 20),
// 添加缓存按钮
ElevatedButton(
onPressed: () async {
// 将输入的文本缓存,设置20秒过期时间
await QuickCacheFlutter.instance.setCache(
key: 'testDuration',
value: textEditingController.text,
expiryDuration: const Duration(seconds: 20),
);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('缓存已添加')),
);
},
child: const Text('添加缓存'),
),
SizedBox(height: 20),
// 获取缓存按钮
ElevatedButton(
onPressed: () async {
// 读取缓存
var value = await QuickCacheFlutter.instance.readCache(key: 'testDuration');
cachedString.value = value ?? '无缓存数据';
},
child: const Text('获取缓存'),
),
SizedBox(height: 20),
// 显示缓存内容
ValueListenableBuilder(
valueListenable: cachedString,
builder: (context, value, child) {
return Text(
'缓存内容: $value',
style: TextStyle(fontSize: 18),
);
},
),
],
),
);
}
}
更多关于Flutter快速缓存管理插件quick_cache_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter快速缓存管理插件quick_cache_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用quick_cache_flutter
插件来进行快速缓存管理的代码示例。quick_cache_flutter
插件可以帮助你轻松地管理应用的缓存数据。
首先,你需要在pubspec.yaml
文件中添加quick_cache_flutter
依赖:
dependencies:
flutter:
sdk: flutter
quick_cache_flutter: ^最新版本号 # 请替换为最新版本号
然后运行flutter pub get
来安装依赖。
安装完成后,你可以按照以下步骤使用quick_cache_flutter
:
1. 初始化缓存管理
在你的应用入口文件(通常是main.dart
)中,你可以初始化缓存管理。
import 'package:flutter/material.dart';
import 'package:quick_cache_flutter/quick_cache_flutter.dart';
void main() {
// 初始化QuickCache
QuickCache.init(
storagePath: 'path/to/cache', // 可选,指定缓存存储路径
encryptionKey: 'your-encryption-key', // 可选,用于加密缓存数据
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
2. 缓存数据的存储和读取
在你的页面或组件中,你可以使用QuickCache
来存储和读取数据。
import 'package:flutter/material.dart';
import 'package:quick_cache_flutter/quick_cache_flutter.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String? cachedData;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('QuickCache Demo'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Cached Data: $cachedData',
style: TextStyle(fontSize: 18),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () async {
// 存储数据到缓存
await QuickCache.setString('myKey', 'Hello, Flutter!');
// 从缓存中读取数据
String? data = await QuickCache.getString('myKey');
setState(() {
cachedData = data;
});
},
child: Text('Store and Retrieve Data'),
),
],
),
),
);
}
}
3. 删除缓存数据
你也可以删除特定的缓存数据或清空所有缓存。
ElevatedButton(
onPressed: () async {
// 删除特定的缓存数据
await QuickCache.delete('myKey');
// 清空所有缓存数据
// await QuickCache.clearAll();
// 更新UI
setState(() {
cachedData = null;
});
},
child: Text('Delete Cached Data'),
),
完整示例
将上述代码整合到一个完整的示例中:
import 'package:flutter/material.dart';
import 'package:quick_cache_flutter/quick_cache_flutter.dart';
void main() {
QuickCache.init(
storagePath: 'path/to/cache',
encryptionKey: 'your-encryption-key',
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String? cachedData;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('QuickCache Demo'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Cached Data: $cachedData',
style: TextStyle(fontSize: 18),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () async {
await QuickCache.setString('myKey', 'Hello, Flutter!');
String? data = await QuickCache.getString('myKey');
setState(() {
cachedData = data;
});
},
child: Text('Store and Retrieve Data'),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () async {
await QuickCache.delete('myKey');
setState(() {
cachedData = null;
});
},
child: Text('Delete Cached Data'),
),
],
),
),
);
}
}
这样,你就可以在你的Flutter应用中使用quick_cache_flutter
插件来管理缓存数据了。希望这个示例对你有帮助!