StatelessWidget和StatefulWidget是flutter的基础组件,日常开发中自定义Widget都是选择继承这两者之一。
两者的区别在于状态的改变,StatelessWidget面向那些始终不变的UI控件,比如标题栏中的标题;而StatefulWidget则是面向可能会改变UI状态的控件,比如有点击反馈的按钮。

一、无状态组件

无状态的组件里面的元素一般是不会发生改变的,比如标题栏中的标题,文章中的文字等等
无状态组件中没有State,不可以使用 setState( ) 的方法
如果用无状态组件来开发计数器这一功能,会发现
虽然类中对应的计数属性值已经加了一,但是视图层中数据还是不会改变

  1. class HomeContent extends StatelessWidget {
  2. const HomeContent({Key? key}) : super(key: key);
  3. @override
  4. Widget build(BuildContext context) {
  5. return Container();
  6. }
  7. }

二、有状态组件

有状态组件可以对UI进行刷新
并且在创建的时候需要指定一个State
需要更新组件UI的时候
调用 setState() 的方法即可

  1. class HomeContent extends StatefulWidget {
  2. const HomeContent({Key? key}) : super(key: key);
  3. @override
  4. _HomeContentState createState() => _HomeContentState();
  5. }
  6. class _HomeContentState extends State<HomeContent> {
  7. @override
  8. Widget build(BuildContext context) {
  9. return Container();
  10. }
  11. }