跳到主要内容

Flutter 基础

Flutter 的 Widget 树、状态管理与构建模式概览。

入口与基本组件

import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(home: Scaffold(appBar: AppBar(title: Text('Hi')), body: Center(child: Text('Hello'))));
}
}

状态管理

  • setState、InheritedWidget、Provider、Riverpod、BLoC 等方案。

setState 示例

class CounterPage extends StatefulWidget {
const CounterPage({super.key});
@override State<CounterPage> createState() => _CounterPageState();
}

class _CounterPageState extends State<CounterPage> {
int _n = 0;
@override Widget build(BuildContext context) => Scaffold(
body: Center(child: Text('$_n')),
floatingActionButton: FloatingActionButton(
onPressed: () => setState(() => _n++), child: const Icon(Icons.add)),
);
}

Provider(简要)

class Counter extends ChangeNotifier { int n = 0; void inc(){ n++; notifyListeners(); } }
// MultiProvider(providers:[ChangeNotifierProvider(create: (_) => Counter())], child: ...)
// context.read<Counter>().inc(); context.watch<Counter>().n