flutter项目初始化

0、flutter 官方插件网址

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", <

相关推荐

  1. flutter项目初始化

    2024-01-03 15:36:08       43 阅读
  2. 【uniapp】初始化项目

    2024-01-03 15:36:08       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-03 15:36:08       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-03 15:36:08       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-03 15:36:08       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-03 15:36:08       20 阅读

热门阅读

  1. 搭建个人深度学习工作站(捡垃圾)

    2024-01-03 15:36:08       42 阅读
  2. QtConcurrent记录

    2024-01-03 15:36:08       38 阅读
  3. 力扣42. 接雨水

    2024-01-03 15:36:08       35 阅读
  4. 算法:动态规划

    2024-01-03 15:36:08       40 阅读
  5. setFirstResult ,setMaxResults

    2024-01-03 15:36:08       33 阅读
  6. pip安装报错SSL

    2024-01-03 15:36:08       45 阅读
  7. 简易版前端项目离线方案-接口及页面离线缓存

    2024-01-03 15:36:08       37 阅读
  8. C++ gRPC helloworld 示例代码

    2024-01-03 15:36:08       39 阅读
  9. 数据结构OJ实验7-树结构及应用

    2024-01-03 15:36:08       31 阅读
  10. MongoDB聚合:$addField

    2024-01-03 15:36:08       37 阅读
  11. 大数据系列之:读取parquet文件统计数据量

    2024-01-03 15:36:08       36 阅读
  12. Mac 彻底删除 node 和 npm

    2024-01-03 15:36:08       37 阅读
  13. 详解汇编cll ret push pop 并附源码

    2024-01-03 15:36:08       43 阅读