产品名称:朱亚宁----测试1 |
品牌: |
货号: |
价格:询价 |
联系人: |
电话: |
1、为什么需要局部刷新如下图场景:在一个Navigator的某Router上有个Scffold页面,页面上并列三个StatefulWidget,分别是A、B、C。 此时此页面对应的Tree应为右图所示。 问题:当A节点上显示的某文本需要变化,怎么操作,才是zui好的选择呢? 回答:这种场景很多,将A节点的文案对象放入State属性中,修改为新的文本,调用setStates()方法即可。那么怎么才是更高效的需要理解setStates()方法做了哪些。 ![]()
image.png
2、setStates()做了什么呢?简单的说就是将setStates的Widget对象对应的Element对象标记为dirty(脏的,意思是需要刷新的),并将其存储到了一个quan局的链表中。然后就是等待,等待什么呢?等待系统下一帧的Vsync通知,当系统告知我们下一帧可以显示了,widgetBinding就会找到这个存放着需要刷新element的链表重新绘制。 |