flutter:Get_Stroage数据存储
背景
今天我们介绍一款轻量级的数据持久化的三方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
}
结语
好了今天的Get_Stroage使用已经介绍完了, 明天一起看下源码是如何实现的
希望大家把一些好的三方分享出来,打在评论区,共同学习,共同进步
作为Flutter届的一个小学生,希望大家多多指教
转载自:https://juejin.cn/post/7035162571057397774