面试题答案
一键面试- 添加依赖:
在
pubspec.yaml
文件中添加shared_preferences
依赖:
然后运行dependencies: shared_preferences: ^2.0.15
flutter pub get
获取依赖。 - 加载数据:
首先导入包:
实现异步加载数据的方法,例如加载字符串数据:import 'package:shared_preferences/shared_preferences.dart';
Future<String?> loadData() async { final prefs = await SharedPreferences.getInstance(); return prefs.getString('key'); }
- 保存数据:
同样获取
SharedPreferences
实例,然后保存数据,例如保存字符串数据:Future<void> saveData(String value) async { final prefs = await SharedPreferences.getInstance(); await prefs.setString('key', value); }
- 缓存策略实现:
- 在需要数据的地方,先尝试从本地存储加载数据。
String? data = await loadData(); if (data!= null) { // 使用缓存的数据 } else { // 从网络或其他数据源获取数据 String newData = await fetchDataFromNetwork(); // 保存新获取的数据到本地存储 await saveData(newData); // 使用新获取的数据 }
- 其中
fetchDataFromNetwork
是自定义的从网络获取数据的异步方法。
主要步骤总结:
- 引入
shared_preferences
依赖。 - 编写加载和保存数据的异步方法。
- 在业务逻辑中,先尝试从本地存储加载数据,若不存在则获取新数据并保存到本地存储。
关键代码:
- 加载数据:
Future<String?> loadData() async { final prefs = await SharedPreferences.getInstance(); return prefs.getString('key'); }
- 保存数据:
Future<void> saveData(String value) async { final prefs = await SharedPreferences.getInstance(); await prefs.setString('key', value); }