首页主机资讯centos下flutter如何实现数据持久化

centos下flutter如何实现数据持久化

时间2026-01-14 19:51:04发布访客分类主机资讯浏览445
导读:在CentOS系统下,Flutter实现数据持久化有多种方式,以下是一些常用的方法: 1. 使用 shared_preferences shared_preferences 是一个Flutter插件,用于存储简单的键值对数据。 安装插件 在...

在CentOS系统下,Flutter实现数据持久化有多种方式,以下是一些常用的方法:

1. 使用 shared_preferences

shared_preferences 是一个Flutter插件,用于存储简单的键值对数据。

安装插件

在终端中运行以下命令来安装 shared_preferences 插件:

flutter pub add shared_preferences

使用示例

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


void main() {
    
  runApp(MyApp());

}


class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    
    return MaterialApp(
      home: DataPersistenceExample(),
    );

  }

}


class DataPersistenceExample extends StatefulWidget {
    
  @override
  _DataPersistenceExampleState createState() =>
     _DataPersistenceExampleState();

}
    

class _DataPersistenceExampleState extends State<
    DataPersistenceExample>
 {
    
  String _data = '';


  @override
  void initState() {
    
    super.initState();
    
    _loadData();

  }


  void _loadData() async {
    
    SharedPreferences prefs = await SharedPreferences.getInstance();

    setState(() {
    
      _data = prefs.getString('key') ?? 'Default Value';

    }
    );

  }


  void _saveData() async {
    
    SharedPreferences prefs = await SharedPreferences.getInstance();

    setState(() {
    
      prefs.setString('key', _data);

    }
    );

  }


  @override
  Widget build(BuildContext context) {
    
    return Scaffold(
      appBar: AppBar(
        title: Text('Data Persistence Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <
    Widget>
[
            TextField(
              decoration: InputDecoration(
                labelText: 'Enter Data',
              ),
              onChanged: (value) {

                setState(() {
    
                  _data = value;

                }
    );

              }
    ,
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _saveData,
              child: Text('Save Data'),
            ),
            SizedBox(height: 20),
            Text('Data: $_data'),
          ],
        ),
      ),
    );

  }

}
    

2. 使用 sqflite

sqflite 是一个Flutter插件,用于在本地存储SQLite数据库。

安装插件

在终端中运行以下命令来安装 sqflite 插件:

flutter pub add sqflite

使用示例

import 'package:flutter/material.dart';
    
import 'package:sqflite/sqflite.dart';
    
import 'dart:convert';


void main() {
    
  runApp(MyApp());

}


class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    
    return MaterialApp(
      home: DataPersistenceExample(),
    );

  }

}


class DataPersistenceExample extends StatefulWidget {
    
  @override
  _DataPersistenceExampleState createState() =>
     _DataPersistenceExampleState();

}
    

class _DataPersistenceExampleState extends State<
    DataPersistenceExample>
 {
    
  String _data = '';


  @override
  void initState() {
    
    super.initState();
    
    _loadData();

  }


  void _loadData() async {
    
    final database = await openDatabase('my_database.db', version: 1);
    
    final Map<
    String, dynamic>
     data = await database.get('data');

    if (data != null) {

      setState(() {
    
        _data = data['value'] ?? 'Default Value';

      }
    );

    }
    
    await database.close();

  }


  void _saveData() async {
    
    final database = await openDatabase('my_database.db', version: 1);

    await database.insert(
      'data',
      {
'value': _data}
    ,
      conflictAlgorithm: ConflictAlgorithm.replace,
    );
    
    await database.close();

  }


  @override
  Widget build(BuildContext context) {
    
    return Scaffold(
      appBar: AppBar(
        title: Text('Data Persistence Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <
    Widget>
[
            TextField(
              decoration: InputDecoration(
                labelText: 'Enter Data',
              ),
              onChanged: (value) {

                setState(() {
    
                  _data = value;

                }
    );

              }
    ,
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _saveData,
              child: Text('Save Data'),
            ),
            SizedBox(height: 20),
            Text('Data: $_data'),
          ],
        ),
      ),
    );

  }

}
    

3. 使用 flutter_secure_storage

flutter_secure_storage 是一个Flutter插件,用于安全地存储敏感数据,如密码、令牌等。

安装插件

在终端中运行以下命令来安装 flutter_secure_storage 插件:

flutter pub add flutter_secure_storage

使用示例

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


void main() {
    
  runApp(MyApp());

}


class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    
    return MaterialApp(
      home: DataPersistenceExample(),
    );

  }

}


class DataPersistenceExample extends StatefulWidget {
    
  @override
  _DataPersistenceExampleState createState() =>
     _DataPersistenceExampleState();

}
    

class _DataPersistenceExampleState extends State<
    DataPersistenceExample>
 {
    
  String _data = '';


  @override
  void initState() {
    
    super.initState();
    
    _loadData();

  }


  void _loadData() async {
    
    final storage = FlutterSecureStorage();

    setState(() {
    
      _data = storage.read(key: 'key') ?? 'Default Value';

    }
    );

  }


  void _saveData() async {
    
    final storage = FlutterSecureStorage();
    
    await storage.write(key: 'key', value: _data);

  }


  @override
  Widget build(BuildContext context) {
    
    return Scaffold(
      appBar: AppBar(
        title: Text('Data Persistence Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <
    Widget>
[
            TextField(
              decoration: InputDecoration(
                labelText: 'Enter Data',
              ),
              onChanged: (value) {

                setState(() {
    
                  _data = value;

                }
    );

              }
    ,
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _saveData,
              child: Text('Save Data'),
            ),
            SizedBox(height: 20),
            Text('Data: $_data'),
          ],
        ),
      ),
    );

  }

}
    

以上是几种常见的Flutter数据持久化方法,你可以根据具体需求选择合适的方法。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos下flutter如何实现数据持久化
本文地址: https://pptw.com/jishu/778941.html
CentOS Cleanup如何清理临时文件 CentOS Cleanup对系统安全有何帮助

游客 回复需填写必要信息