Flutter本地缓存插件flutter_hi_cache_zq的使用

Flutter本地缓存插件flutter_hi_cache_zq的使用

使用

const like = 'sample';

额外信息

基于shared_preferences。适用于iOS、Android和Web平台。


示例代码

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_hi_cache_zq/flutter_hi_cache_zq.dart';

void main() {
  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(
        // 这是你的应用的主题。
        //
        // 尝试一下:尝试运行你的应用程序(使用"flutter run")。你会看到应用程序有一个紫色的工具栏。然后,在不退出应用程序的情况下,尝试将以下颜色方案中的seedColor更改为Colors.green,
        // 并触发“热重载”(保存更改或按下支持Flutter的IDE中的“热重载”按钮,或者在命令行启动应用程序时按“r”)。
        //
        // 注意:计数器没有重置为零;应用程序的状态在重新加载期间不会丢失。要重置状态,使用热重启。
        //
        // 这也适用于代码,而不仅仅是值:大多数代码更改都可以通过仅进行热重载来测试。
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: FutureBuilder<dynamic>(
        future: HiCache.preInit(),
        builder: (BuildContext context, AsyncSnapshot<dynamic> snapshot) {
          var widget = snapshot.connectionState == ConnectionState.done
              ? const MyHomePage(title: 'HiCache Demo')
              : const Scaffold(
                  body: Center(
                    child: CircularProgressIndicator(),
                  ),
                );
          return widget;
        },
      ),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  // 这个小部件是你的应用程序的主页。它是一个有状态的小部件,意味着它有一个状态对象(在下面定义),该状态对象包含影响其外观的字段。
  // 这个类是状态的配置。它保存由父级(在这个例子中是App小部件)提供的值(在这个例子中是标题)并用于状态的构建方法。小部件子类中的字段总是标记为"final"。

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  int showResult = 0;
  static const COUNT_KEY = 'key_count';

  void _incrementCounter() {
    // 设置整数值到缓存
    HiCache.getInstance().setInt(COUNT_KEY, ++_counter);

    // 更新UI显示缓存中的值
    setState(() {
      showResult = HiCache.getInstance().getInt(COUNT_KEY);
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    // 每次调用setState时都会重新运行此方法,例如上面的_incrementCounter方法所做的那样。
    //
    // Flutter框架已被优化以使重新运行构建方法变得快速,因此你可以重建任何需要更新的内容,而不是逐个更改小部件实例。
    return Scaffold(
      appBar: AppBar(
        // 尝试一下:尝试在这里将颜色更改为特定颜色(可能是Colors.amber?),并触发热重载以查看工具栏的颜色发生变化,而其他颜色保持不变。
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        // 这里我们从App.build方法创建的MyHomePage对象中获取值,并将其用于设置我们的appbar标题。
        title: Text(widget.title),
      ),
      body: Center(
        // Center是一个布局小部件。它接受一个子元素并将其中心定位在父元素中间。
        child: Column(
          // Column也是一个布局小部件。它接受一个子元素列表并垂直排列它们。默认情况下,它根据其子元素水平调整大小,并尝试与其父元素一样高。
          //
          // Column有各种属性可以控制它如何调整大小以及如何定位其子元素。这里我们使用mainAxisAlignment来垂直居中子元素;主轴是垂直轴,因为Columns是垂直的(交叉轴将是水平的)。
          //
          // 尝试一下:调用“调试绘制”(在IDE中选择“切换调试绘制”操作,或在控制台中按“p”),可以看到每个小部件的线框图。
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text(
              '你已经按下了按钮这么多次:',
            ),
            Text(
              '$showResult',
              style: Theme.of(context).textTheme.headlineMedium,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // 这个尾随的逗号使自动格式化更美观。
    );
  }
}

更多关于Flutter本地缓存插件flutter_hi_cache_zq的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter本地缓存插件flutter_hi_cache_zq的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flutter_hi_cache_zq 是一个用于 Flutter 的本地缓存插件,它可以帮助你在应用中轻松地存储和读取缓存数据。以下是如何使用 flutter_hi_cache_zq 插件的详细步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 flutter_hi_cache_zq 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_hi_cache_zq: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装依赖。

2. 初始化缓存

在使用缓存之前,你需要先初始化缓存。通常在 main.dart 中的 main 函数中进行初始化:

import 'package:flutter/material.dart';
import 'package:flutter_hi_cache_zq/flutter_hi_cache_zq.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化缓存
  await HiCache.init();
  
  runApp(MyApp());
}

3. 存储数据

你可以使用 HiCache 类中的 set 方法来存储数据。支持存储的数据类型包括 StringintdoubleboolList<String>

HiCache.setString('key1', 'Hello, World!');
HiCache.setInt('key2', 123);
HiCache.setDouble('key3', 45.67);
HiCache.setBool('key4', true);
HiCache.setStringList('key5', ['item1', 'item2']);

4. 读取数据

你可以使用 HiCache 类中的 get 方法来读取数据。根据存储的数据类型,使用相应的方法来获取数据。

String? value1 = HiCache.getString('key1');
int? value2 = HiCache.getInt('key2');
double? value3 = HiCache.getDouble('key3');
bool? value4 = HiCache.getBool('key4');
List<String>? value5 = HiCache.getStringList('key5');

5. 删除数据

你可以使用 HiCache 类中的 remove 方法来删除指定的缓存数据。

HiCache.remove('key1');

6. 清空缓存

你可以使用 HiCache 类中的 clear 方法来清空所有缓存数据。

HiCache.clear();

7. 检查缓存是否存在

你可以使用 HiCache 类中的 containsKey 方法来检查某个键是否存在。

bool exists = HiCache.containsKey('key1');

8. 获取所有键

你可以使用 HiCache 类中的 getKeys 方法来获取所有缓存的键。

Set<String> keys = HiCache.getKeys();

9. 获取缓存大小

你可以使用 HiCache 类中的 getSize 方法来获取当前缓存的总大小。

int size = HiCache.getSize();

10. 设置缓存过期时间

你可以使用 HiCache 类中的 setWithExpiry 方法来设置缓存数据的过期时间。

HiCache.setWithExpiry('key6', 'This will expire in 10 seconds', Duration(seconds: 10));

11. 检查缓存是否过期

你可以使用 HiCache 类中的 isExpired 方法来检查某个键的缓存是否已过期。

bool isExpired = HiCache.isExpired('key6');
回到顶部