温馨提示×

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

小樊
45
2025-12-23 12:44:38
栏目: 智能运维

在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数据持久化方法,你可以根据具体需求选择合适的方法。

0