Flutter 的渲染模式是 增量渲染 ,当一部分有变化的时候就将原先的替换掉。所以页面元素没有必要拥有状态。但是这样对于时机开发并不友好,尤其对于数据驱动的复杂的页面。
import 'package:flutter/material.dart';
// 渲染逻辑
class MyStatefulWidget extends StatefulWidget {
const MyStatefulWidget({Key? key}) : super(key: key);
@override
State<StatefulWidget> createState() {
return _MyStateDataSource();
}
}
// 数据逻辑
class _MyStateDataSource extends State<MyStatefulWidget> {
int _clickCount = 0;
@override
Widget build(BuildContext context) {
return Container(
color: Colors.red,
child: FloatingActionButton(
child: Text("$_clickCount"),
onPressed: () {
setState(() {// 触发状态改变,重新渲染
_clickCount += 1;
});
},
),
);
}
}