flutter项目初始化
2024-01-03 15:56:52
flutter项目初始化
0、flutter 官方插件网址
注意:使用 flutter 的时候一定要把数据放在父组件中(主要是指Dio数据请求),往子组件传展示
1、flutter项目环境配置
待做
2、flutter数据本地存储(shared_preferences)
1、dependencies:
shared_preferences: ^2.2.2
2、utils 包里面创建文件:
shared_preferences.dart
import 'dart:convert';
import 'package:shared_preferences/shared_preferences.dart';
class JSpUtil {
JSpUtil._internal();
factory JSpUtil() => _instance;
static final JSpUtil _instance = JSpUtil._internal();
static late SharedPreferences _preferences;
static Future<JSpUtil> getInstance() async {
_preferences = await SharedPreferences.getInstance();
return _instance;
}
/// 通用设置持久化数据
static setLocalStorage<T>(String key, T value) {
String type = value.runtimeType.toString();
switch (type) {
case "String":
_preferences.setString(key, value as String);
break;
case "int":
_preferences.setInt(key, value as int);
break;
case "bool":
_preferences.setBool(key, value as bool);
break;
case "double":
_preferences.setDouble(key, value as double);
break;
case "List<String>":
_preferences.setStringList(key, value as List<String>);
break;
}
}
/// 获取持久化数据
static dynamic getLocalStorage<T>(String key) {
dynamic value = _preferences.get(key);
if (value.runtimeType.toString() == "String") {
if (_isJson(value)) {
return json.decode(value);
}
}
return value;
}
/// 获取持久化数据中所有存入的key
static Set<String> getKeys() {
return _preferences.getKeys();
}
/// 获取持久化数据中是否包含某个key
static bool containsKey(String key) {
return _preferences.containsKey(key);
}
/// 删除持久化数据中某个key
static Future<bool> remove(String key) async {
return await _preferences.remove(key);
}
/// 清除所有持久化数据
static Future<bool> clear() async {
return await _preferences.clear();
}
/// 重新加载所有数据,仅重载运行时
static Future<void> reload() async {
return await _preferences.reload();
}
/// 判断是否是json字符串
static _isJson(String value) {
try {
const JsonDecoder().convert(value);
return true;
} catch(e) {
return false;
}
}
}
3、入口函数加上两句话,不然报错
void main() async {
// 下面两句是持久化数据用的
WidgetsFlutterBinding.ensureInitialized();
await JSpUtil.getInstance();
runApp(const ApplicationApp());
}
4、使用
// 1、取值
JSpUtil.getLocalStorage('token');
// 2、存值
JSpUtil.setLocalStorage("token", "需要存的值");
3、GetX 中的数据响应式配合本地存储使用
1、创建 store 仓库
// 根目录下创建 store/store.dart 文件
// store.dart 文件里面
import 'package:get/get.dart';
import 'package:hook_up_rant/utils/shared_preferences.dart';
class StoreIndex {
// 变量(首先从本地储存取,没有的话就定义一个)
static var token =
文章来源:https://blog.csdn.net/weixin_43993776/article/details/135341146
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!