当前位置:网站首页>Flutter life cycle
Flutter life cycle
2022-07-06 22:56:00 【Xiaobai is more than that】
One 、Flutter The two main Widget
StatelessWidget( Stateless component )
Stateless components are immutable
, This means that their properties cannot be changed , All values are final . It can be understood as transforming the external incoming data into the content displayed on the interface , It will only render once . For stateless component lifecycles, there are only build This process .
The construction method of stateless components is usually called in only three cases : The widget is inserted into the tree for the first time , The parent component of the widget changes its configuration , And what it depends on InheritedWidget When something changes .
StatefulWidget( Stateful component )
Stateful components may hold states in Widget Change in the life cycle
, Is to define interaction logic and business logic . It can be understood as having a dynamic and interactive content interface , It will render multiple times according to the change of data .
StatefulWidget The class itself is immutable , however State Class in Widget There is always in the life cycle .StatefulWidget Store its variable state in the createState Method to create State In the object , Or stored in the State In the subscribed object
.
Two 、StatefulWidget Life cycle
createState:
The function of StatefulWidget Created in State Methods , When StatefulWidget It will be executed immediately when it is created createState
.createState After the function is executed, it indicates that the current component is already in Widget In the tree , There is a very important attribute here mounted Be set to true.
initState:
The function of State Initialize call , Will only be called once
, therefore , Usually do some one-time operations in this callback , Such as implementation State Initial assignment of each variable 、 Subscribe to event notifications for subtrees 、 Interact with the server , After receiving server data, call setState To set up State.
didChangeDependencies:
The function is The component depends on State Is called when it changes
. here State by overall situation State
, For example, system language Locale Or application theme, etc ,Flutter The framework will inform widget Call this callback . After this method is called
, The state of the component changes to dirty, Call immediately build Method
.
build:
Mainly Returns the image to render Widget
, because build Will be called many times , Therefore, only returns can be made in this function Widget Related logic , Avoid state exceptions caused by multiple executions .
Use scenarios :
a. Calling initState() after .
b. Calling didChangeDependencies() after .
c. Calling setState() after .
d. Calling didUpdateWidget() after .
e. stay State After the object is removed from a location in the tree ( Would call deactivate) Reinsert again Enter into After going to other places in the tree .
reassemble:
The main Use during development , stay debug In mode , This function is called for each hot overload
, So in debug The stage can be increased during this period debug Code , To check for code problems . This callback stay release Mode will never be called
.
didUpdateWidget:
This function is mainly used in Component rebuild , For example, thermal overload
, The parent component build Under the circumstances , This method will only be called by the subcomponent , secondly After this method is called, it must call build Method .
deactivate:
After the node of the component is removed, it will be called
, If the component is removed, the node , then When not inserted into other nodes , Will continue to call dispose Permanently removed .
dispose:
Permanently remove components
, And release component resources . Call complete dispose after ,mounted Property is set to false, On behalf of The end of the component life cycle
.
It can be roughly divided into four stages :
(1) Initialization phase , Includes two lifecycle functions createState and initState;
(2) Component creation phase , Include didChangeDependencies and build;
(3) Trigger the component more than once build , This stage may be due to didChangeDependencies、 setState perhaps didUpdateWidget And the resulting component re build , It will be triggered many times during the operation of the component , This is also a key point in the optimization process ;
(4) The last stage is the component destruction stage ,deactivate and dispose.
This reference article is as follows :
interviewer : know Flutter Life cycle ? Come on next week !
边栏推荐
- Interview question: AOF rewriting mechanism, redis interview must ask!!!
- MySQL实现字段分割一行转多行的示例代码
- uniapp设置背景图效果demo(整理)
- Let's see through the network i/o model from beginning to end
- 专为决策树打造,新加坡国立大学&清华大学联合提出快速安全的联邦学习新系统
- Leetcode: interview question 17.24 Maximum cumulative sum of submatrix (to be studied)
- DR-Net: dual-rotation network with feature map enhancement for medical image segmentation
- Cocoscreator+typescripts write an object pool by themselves
- 【编译原理】做了一半的LR(0)分析器
- Traversal of a tree in first order, middle order, and then order
猜你喜欢
Hard core observation 545 50 years ago, Apollo 15 made a feather landing experiment on the moon
[compilation principle] LR (0) analyzer half done
Improving Multimodal Accuracy Through Modality Pre-training and Attention
Aardio - does not declare the method of directly passing float values
Les entreprises ne veulent pas remplacer un système vieux de dix ans
树的先序中序后序遍历
[leetcode] 19. Delete the penultimate node of the linked list
欧洲生物信息研究所2021亮点报告发布:采用AlphaFold已预测出近1百万个蛋白质
DockerMySQL无法被宿主机访问的问题解决
On file uploading of network security
随机推荐
企業不想換掉用了十年的老系統
cuda 探索
Let's see through the network i/o model from beginning to end
UE4蓝图学习篇(四)--流程控制ForLoop和WhileLoop
Case recommendation: An Qing works with partners to ensure that the "smart court" is more efficient
Redis persistence mechanism
How to confirm the storage mode of the current system by program?
NPM cannot install sharp
BasicVSR_PlusPlus-master测试视频、图片
Introduction to network basics
树的先序中序后序遍历
[unity] upgraded version · Excel data analysis, automatically create corresponding C classes, automatically create scriptableobject generation classes, and automatically serialize asset files
监控界的最强王者,没有之一!
How to use flexible arrays?
MySQL ---- first acquaintance with MySQL
Windows auzre background operation interface of Microsoft's cloud computing products
On the problems of born charge and non analytical correction in phonon and heat transport calculations
UDP programming
Word2vec (skip gram and cbow) - pytorch
The application of machine learning in software testing