当前位置:网站首页>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 !
边栏推荐
- 2022-07-05 stonedb sub query processing parsing time analysis
- ACL 2022 | 序列标注的小样本NER:融合标签语义的双塔BERT模型
- CRMEB商城系统如何助力营销?
- [unity] upgraded version · Excel data analysis, automatically create corresponding C classes, automatically create scriptableobject generation classes, and automatically serialize asset files
- [untitled]
- Jafka来源分析——Processor
- mysql拆分字符串作为查询条件的示例代码
- HDU 5077 NAND (violent tabulation)
- How to use flexible arrays?
- Chapter 19 using work queue manager (2)
猜你喜欢
How to confirm the storage mode of the current system by program?
#DAYU200体验官# 首页aito视频&Canvas绘制仪表盘(ets)
Machine test question 1
浅谈网络安全之文件上传
关于声子和热输运计算中BORN电荷和non-analytic修正的问题
Balanced Multimodal Learning via On-the-fly Gradient Modulation(CVPR2022 oral)
config:invalid signature 解决办法和问题排查详解
[leetcode] 19. Delete the penultimate node of the linked list
【全网首发】Redis系列3:高可用之主从架构的
Custom swap function
随机推荐
Extern keyword
【踩坑合辑】Attempting to deserialize object on CUDA device+buff/cache占用过高+pad_sequence
uniapp设置背景图效果demo(整理)
dockermysql修改root账号密码并赋予权限
How to choose the server system
Sizeof keyword
儿童睡衣(澳大利亚)AS/NZS 1249:2014办理流程
Introduction to network basics
AdaViT——自适应选择计算结构的动态网络
Jafka source analysis processor
European Bioinformatics Institute 2021 highlights report released: nearly 1million proteins have been predicted by alphafold
动作捕捉用于蛇运动分析及蛇形机器人开发
Financial professionals must read book series 6: equity investment (based on the outline and framework of the CFA exam)
docker中mysql开启日志的实现步骤
[leetcode] 19. Delete the penultimate node of the linked list
Leetcode: interview question 17.24 Maximum cumulative sum of submatrix (to be studied)
视图(view)
自定义 swap 函数
Motion capture for snake motion analysis and snake robot development
Config:invalid signature solution and troubleshooting details