温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
上节课我们把这个set stage来更新组件的这个生命周期给说完了啊,那这节课我们来看一下force update这个流程啊,那force它是什么意思呢?它有强制的意思,对吧?那这个就是强制更新,也就是说啊,我set我是正常的去更新组件,但是我现在我不想正常的更新组件,我就想强制更新组件,对吧?那我就是说我不修改状态的时候,我也让组件。哎,尝试更新一下,好,那我们来写一下啊,那首先我们来想一想啊,这里啊。是我们更新了状态,哎,更新的主要状态,它自动去触发的这个更新的一个流程,那这里既然是强制对吧,那是不是我得有个地方,我去触发这个方法,去调用这个方法,让它强制去来更新这个组件,我们来写一下啊。还使用上节课这个例子啊。那我这里给一个按钮。强制更新啊,写完写完整点就是不修改。
01:00
状态啊,不更改状态。哎,强制更新。好,那这里写这么一个方法啊。来,我们自定义的方法,我们放到一起,放到这里去写。强制更新。啊,按钮的回调。付之一炬。箭头函数来在这里我们来触发这个强制更新,来我们来想一下,那这个强制更新它是一个。呃,方法是吧,那谁去触发的呢。来看一下,哎,更新状态是不是我们调的this是吧,那强制更新我们是不是也从这个this组件实例上面去调这个,呃,False update,哎,这个方法。好,嗯,那。
02:01
怎么样去验证?我有没有强制更新呢?来我们来看一下这个图啊,如果我强制更新的时候,它会执行这个VI update对吧,会输出这个,然后会执行软会执行它对不对?好,那接下来我们来看一下这个例子啊,右键运行。来打开控制器,先把这个正常的挂载都清掉啊好,那我呃正常的更新,哎,这正常更新的流程我把它清掉,现在我不更改状态,直接强制更新。可以看一下是不是while update执行了,Render执行了,哎,以及这个啊,Did update执行了,对吧,那没有执行这个啊,Should component update吧,哎,是不是直接走了强制更新这条线啊,当我们走这个强制更新这条线的时候,那已经跟这个开关没有关系了,哎,因为都不经过它了,是吧?所以不管你返回true和副词,对我已经没有影响了。清楚吧,那我们来看一下,比如这个我们找到开关这里啊。
03:00
哎,我们把这个开关返回first。再刷新一下。好,那你点正常更新肯定不行了,是不是,哎一直在这个阀门这里,哎执行一直进行不下去了,那我强制更新是不是正常的执行啊,这样设计的话就比较灵活,就是说我们可以去修改状态,让它自动去更新这个组件,也可以修改状态,不更新组件也可以,哎就是说呃,不更改状态,我们直接强制去更新组件啊,这是他设计的一个哎亮点啊,方便我们灵活的去根据我们的需求去使用。哎,这个就是呃,Force update的强制更新那。呃,关于更新这里啊,它的生命周期我们说完了,Set正常的一个更新流程,也说完了这个first update,哎,这种强制更新的一个流程,哎,在接下来的一小件,我们将去说一下啊,这种比较复杂的一个情况,就是说掺杂了这个副组件的这种更新的一个情况。
我来说两句