当前位置:网站首页>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 !
边栏推荐
猜你喜欢
C# 三种方式实现Socket数据接收
专为决策树打造,新加坡国立大学&清华大学联合提出快速安全的联邦学习新系统
CUDA exploration
Improving Multimodal Accuracy Through Modality Pre-training and Attention
#DAYU200体验官# 在DAYU200运行基于ArkUI-eTS的智能晾晒系统页面
CocosCreator+TypeScripts自己写一个对象池
DockerMySQL无法被宿主机访问的问题解决
cuda 探索
Cloud native technology container knowledge points
Word2vec (skip gram and cbow) - pytorch
随机推荐
Precise drag and drop within a contentable
The statement that allows full table scanning does not seem to take effect set odps sql. allow. fullscan=true; I
儿童睡衣(澳大利亚)AS/NZS 1249:2014办理流程
Balanced Multimodal Learning via On-the-fly Gradient Modulation(CVPR2022 oral)
config:invalid signature 解决办法和问题排查详解
2014阿里巴巴web前实习生项目分析(1)
OpenNMS separation database
Introduction to network basics
Return keyword
2014 Alibaba web pre intern project analysis (1)
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
On file uploading of network security
动作捕捉用于蛇运动分析及蛇形机器人开发
The difference between enumeration and define macro
OpenNMS分离数据库
Dayu200 experience officer homepage AITO video & Canvas drawing dashboard (ETS)
Uniapp setting background image effect demo (sorting)
HDU 5077 NAND (violent tabulation)
存币生息理财dapp系统开发案例演示