Stateless无状态组件
//Stateless无状态组件比较简单就是一个 build 函数,每次外部新状态压入,进行调用 //当Widget不再需要时,比如在页面切换或者被移除时,Flutter会销毁这些Widget。 //对于StatelessWidget来说,它没有内部状态(即无可变的变量) class LeftPage extends StatelessWidget { const LeftPage({super.key, required this.title}); final String title;
@override Widget build(BuildContext context) { return Text(title); } }
createState 创建状态
//createState 创建状态 class LeftPage extends StatefulWidget { final String title; const LeftPage({super.key, required this.title}); //1、当您创建一个statefulWidget时,这将自动创建。 @override State<LeftPage> createState() => _LeftPageState(); } class _LeftPageState extends State<LeftPage> { //2、initState 初始化状态 //在小部件创建之前和构建方法之前调用 ; 一般用来初始状态数据 @override void initState() { // TODO: implement initState super.initState(); print('-------------------------initState'); } //3、didChangeDependencies 依赖改变 // 当每个依赖项更改此状态时,调用此方法 // 在构建小部件的第一次调用initState()之后,也可以立即调用它。 @override void didChangeDependencies() { print('-------------------------didChangeDependencies'); super.didChangeDependencies(); } // 4. 当小部件重新构建时,将调用此方法。 // 这个用于取消订阅在initState()中订阅的旧对象, // 并在更新的小部件配置需要替换对象时订阅新对象。 @override void didUpdateWidget(covariant LeftPage leftPage) { print('-------------------------didUpdateWidget'); // 更新Widget配置逻辑 super.didUpdateWidget(leftPage); } // 5、deactivate 停用 // 当小部件暂时从小部件树中移除时,将调用此方法。 @override void deactivate() { print('-------------------------deactivate'); super.deactivate(); } // 6、dispose 释放资源 // 当小部件从小部件树中永久移除时 @override void dispose() { print('-------------------------dispose'); super.dispose(); } @override Widget build(BuildContext context) { return Text(widget.title); } }
标签:Widget,生命周期,title,部件,initState,override,super,flutter From: https://www.cnblogs.com/xbinbin/p/17967361