状态管理
Flutter 分两种组件:StatelessWidget(静态,不随状态变化)和 StatefulWidget(动态,setState 更新界面)。状态管理就是把"数据变化 → 界面刷新"理顺。
setState 基础
StatefulWidget 里点按钮改数据,调 setState(() { 数据 = 新值; }),界面自动重建。
进阶方案
项目大了用 Provider、Riverpod、Bloc 等状态管理库,把状态提升、逻辑分层。入门先吃透 setState。
代码示例
import 'package:flutter/material.dart';
class CounterPage extends StatefulWidget {
const CounterPage({super.key});
@override
State<CounterPage> createState() => _CounterPageState();
}
class _CounterPageState extends State<CounterPage> {
int _count = 0;
void _increment() {
setState(() {
_count++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("计数器")),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text("$_count", style: const TextStyle(fontSize: 48)),
const SizedBox(height: 20),
ElevatedButton(
onPressed: _increment,
child: const Text("+1"),
),
],
),
),
);
}
}