00:00
好了各位,我们再看另外一条线啊,就是这条线走粉色的。好同学,这条线的起始是不是在这里?那也就是说你得调用什么东西叫做false update update呢,大家都知道叫更新,那你说false update,同学,False这个词呢,有军队武装啊这些意思,其实还有一个意思叫强制啊,所以说我们参考它这个意思啊,叫强制,那所以说false update意思就是强制更新,什么叫强制更新呢?同学,刚刚我们所走的这条路啊,这叫正常更新。哎,捋顺一下同学,你为什么调set state呀?啊,老师我想更改状态里的数据,那数据一改是不是就驱动着页面的显示啊,那你说这些流程诶,是不是就都走下去了,那当然有一个前提,就是这个阀门得开启对不对,这叫正常更新。
01:00
好,那什么叫强制更新啊,正常更新都是建立在你得真的去改了状态里的数据,人家才能帮你更新,对不对,你得调state嘛,你得去改嘛,但是有些时候啊,同学我就不想更改状态里的数据,我也想让你更新一下。那所以说人家给你提供这种方式了,就是强制更新,你可以不对状态做出任何的修改,你发现组件也能帮你更新一下,诶这就是强制更新,其实看这个图来说同学一点也不难,强制更新就是比正常更新少走了一个环节。正常更新呢,得经过这个阀门,阀门如果开启才能往下更新,才能走下去,阀门关闭那是根本走不下去的,但是你发现如果你调的是强制更新,它直接绕过这个阀门,直接进入更新流程,开始will update,调用render去更新,完成更新update。
02:00
那你想吧,同学,他都叫强制更新了,它能受到阀门的控制吗?不能。哎,说老师那什么时候用这个强制更新呢?其实用的也不多,就在这种场景下使用,不想对状态做出任何的修改,我就想让你更新一下,你可以用false update来我们测试一下啊,回到咱们的代码当中往下滑找到这儿,这不有个卸载组件吗?再来一个按钮,叫不更改任何状态中的数据,强制更新一下啊,不能叫这个了,换个名吧,叫force,我就叫强制就得了啊,那滑到上方,同学,你写代码的时候,最好让这些生命周期钩子吧挨在一起,然后你所写的那些事件的回调呢,让它放在一起好了,走。注释呢,复制咱改个词儿就得了啊,不是卸载组件按钮,是强制更新按钮的回调,那里面怎么调呢?老师,那我就直接调吧,False update不行,Set咱不得this点吗?它也得this点好了来回到这走,This点强制更新好。
03:24
咱试试啊同学,试一试,回到这儿,这按钮呢是我承认啊,稍微有点长了,初始化阶段在这呢啊,没毛病,接下来呢,我强制更新一下,同学,我咋知道它更没更新啊,看图说话,如果你真的触发了更新流程,就这就这就这,是不是都得输出啊?好,回到页面中看效果走你是吧。哎,我改状态的值道吗?没有,但是我就想让你更新一下吗?哎,你可以用强制更新,好舒老师,它不受阀门的控制,那来找一下我的阀门,Should component update,阀门是不是开启的,我把阀门关闭掉,同学,阀门我可关了呀,那你注意看啊同学,刷新阀门,纵使它关了,我也能正常处罚更新的流程,但是你阀门一关呢,那你正常更新就不行了,你比如说走走走走,他问了这么多次,没有一次成的阀门始终处于关闭状态,对不对?哎,那我们就把什么呢,强制更新这条线呢,就给大家演示明白了,那同学啊,现在你来看这个图,同学,你觉不觉得react设计的挺巧妙的,你看啊,对于正常更新流程来说呢,他给你承诺的就是你敢调set state改状态,我就可以让这些流程全都给你跑通了,你敢调set state,我就帮你改状态,我就帮你调render。
04:44
但如果说你不喜欢,或者说你有一些特殊的要求,我改状态,你别帮我调render,你别帮我更新,嗯,可以有一个阀门让你去控制,对吧?那还有的时候呢,就是我没有对状态进行任何的修改,但是我就想让你更新一下嘛,哎,你可以走这条路叫false update,哎怎么样,觉不觉得诶这样做就很柔和,不是说把东西写死的,你改状态吧,你改我就更新,你也可以不更新是吧,说老师,那我想更新就必须得改状态,你不改状态也能更新对吧?哎,特别灵活,好了,那我们就把粉丝的这条线啊,就给大家说完了好了,那这小节呢,我们停一下。
我来说两句