centos下flutter如何实现数据持久化
导读:在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
