flutter:Get_Stroage数据存储(flutter缓存)
背景
今天我们介绍一款轻量级的数据持久化的三方Get_Stroage,可与搭配get一起使用,也可以帮助我们在多个isolation之前同步数据
get_stroage介绍
那其实目前有很多的flutter数据持久化的三方我们为什么要使用get_stroage,最简单粗暴的原因,那就是快,所有的增删改查可以再一瞬间完成,来看下get_stroage与其他三方之间的数据对比
看数据对比我们可以发现,读写删都拥有非常快的速度,至于为何可以做到这么快的速度,我们明天再介绍,今天我们先来看看使用方法
增删改查
那一个数据库肯定是绕不开增删改查的,那我们就来看下如何使用get_stroage
首先我们需要再main函数里边初始化一下GetStorage,初始化完成后我们就可以正常使用了
main() async { await GetStorage.init(); runApp(App()); }复制代码
如果通过实例调用的话,先获取到GetStorage实例
final box = GetStorage();复制代码
写入信息
box.write('quote', 'GetX is the best');复制代码
读取信息
print(box.read('quote'));复制代码
删除信息
box.remove('quote');复制代码
也可以监听,所有键值对的改动,当然在你不需要了的时候务必将监听移除
//添加监听 box.listen((){ print('box changed'); }); //移除监听 box.removeListen(listen);复制代码
当然如果你不想监听所有只想监听某一个的时候也可以
box.listenKey('key', (value){ print('new key is $value'); });复制代码
清楚所有容器内数据
box.erase();复制代码
当你想创建多个容器时,也是可以的,还记得上面我们使用的初始化方法么,只需要在初始化的时候传入参数就可以了
await GetStorage.init('MyStorage');复制代码
当然get还提供了方便快捷的扩展方法,当成员变量的值发生改变时你不需要再次去存储数据,因为已经帮你存储好了,你只需要使用就好了
class MyPref { static final _otherBox = () => GetStorage('MyPref'); final username = ''.val('username'); final age = 0.val('age'); final price = 1000.val('price', getBox: _otherBox); // or final username2 = ReadWriteValue('username', ''); final age2 = ReadWriteValue('age', 0); final price2 = ReadWriteValue('price', '', _otherBox); } ... void updateAge() { final age = 0.val('age'); // or final age = ReadWriteValue('age', 0, () => box); // or final age = Get.find<MyPref>().age; age.val = 1; // will save to box final realAge = age.val; // will read from box }复制代码
结语
伪原创工具 SEO网站优化 https://www.237it.com/
好了今天的Get_Stroage使用已经介绍完了, 明天一起看下源码是如何实现的
希望大家把一些好的三方分享出来,打在评论区,共同学习,共同进步
作为Flutter届的一个小学生,希望大家多多指教
作者:雪皇
链接:https://juejin.cn/post/7035162571057397774