00:00
好嘞,各位,那在这一小节呢,我们给大家讲一下这个customer ref,诶看一下这词儿啊,Customer什么意思呢?来有道呢,查一下走,它直接翻译过来啊,叫做定制习惯,哎,或者是自定义,我们取这一层含义啊,叫自定义,那也就是说接下来我们要讲的东西叫做自定义ref,哎呦,这个东西啊,不太好理解,咱慢慢来吧,在这儿呢,我写了一句话,诶就是它的作用,这句话呢,摘字view的官网,来我们一起读一下啊,看看官网里面最标准的描述是怎么说的,他说这个customer ref呀,创建一个自定义的ref,哎,就读到这儿啊,目前我们感觉诶好像还行是吧?哎,之前一直用ref啊,之前用这ref呀,都是从哪来的呀,都是U给我们提供的啊,那这回呢啊,学了这个东西之后,我能创建一个诶自己的ref了,自定义的,好,各位读后半句话,前半句话还行啊,读后半句并对其依赖向跟踪和更新处发进行显示控制,你说这说的是人话吗?当然咱开玩笑啊,人家说的已经。
01:00
明白了,很官方了啊,只不过我们没有理解好,是不来各位用一个效果呢,去把它讲一下啊,这个customers ref我们并没有单独设计什么案例啊,为什么呢?因为官网里写的那个案例就是最棒的,对于customer ref来说,各位实现我接下来所说的这个效果是最好的一个体现,所以呢,不要随便去换案例了,就用官网的那个最好,当然官网也不是说什么案例写的都挺好,有的时候他那案例写的太综合了,初学者呢容易晕,但是这个。中规中矩说啊,官网写的真不错,来各位说说实现什么效果啊,就是蓝色的呀,是你整个页面,然后一会儿呢,我想让这儿啊有一个input框,哎,红色的是input框,然后下边呢,有一橙色的,这橙色的呢是一个H4标签,哎或者H3,哎然后呢,我往这个红色的input框里面啊输入东西,我输入一个一,那么下边这个H3呢,就等一秒钟,诶再出现这个一,那么同理,我在这儿如果输入二,那么下边这儿呢,等一秒钟在这儿诶再显示谁呢?二,哎,就一种感觉,它等一会儿再呈现我的数据,确实是我输入什么它呈现什么,但是等一会儿再呈现,哎,就有点什么感觉呢,防抖的感觉,如果你听过咱们上硅谷的这个GS啊,就知道什么叫做函数防抖,还有函数截流在这儿呢,我们就不说这些概念了啊,毕竟不是GS基础,OK,就是一个延迟显示的这么一个效果,来吧,写写回到代码里,各位,我接下来啊,得做一个事儿了,把这些组件啊全都删掉,因为本身。
02:31
自定义ref就不太好理解,我这里边就不能再混着太多别的东西了啊各位,然后这些东西啊,通通都删掉,也不用引入DEMO了,也不用注册了,然后呢,准备一个数据啊,这个数据呢,就叫做keyword,对吧,你所输入的这个关键词,那么一上来呢,让它有值啊,是hello,然后返回这个keyword,那么在页面上去写吧,写那个input框,同学,这样啊,咱们一步一步来,你先别考虑自定义ref,也先别考虑我说那功能,哎,说什么等一秒钟再呈现,咱们就先实现一个最基本的,各位,这就是一输入框啊,这呢就是1H3标签,你这输入的如果是123,好,那我呈现的也是123,哎,实时收集,实时展示,就这么一个效果来写着,各位,收集用户数据是不是可以用vior model收集到哪里去?当然是keyword里面,那在这呢,写一个H3做展示,差值语法直接写是不是就可以来走着keyword拿回来OK了吧,来看效果刷新一波。
03:31
一上来是HELLO123,下边是不是跟着变来升级走着,现在你用的这个ref打哪来呀啊打这儿来又给我提供的好写好注释,使用view提供的内置的ref,哎或者说提供的就得了,View提供的不就是内置的吗?那么接下来各位意味着这句话呀,咋的不能写了。啊,复制一份,那得怎么写呢?哎,叫做使用程序员自定义的ref啊,那就不能叫这个名字了,因为这个ref啊,这单词被人家这给占用了呀,所以说最好换个词,哎,叫什么呢?叫做my ref可以吧,我的ref OK,来吧,开始写写,说老师这不就写完了吗?哥们,你这不开玩笑呢吗?这上来绝对报错呀,My ref is not DeFine太正常了。各位,你这终归来说是个函数的调用呗,你有这函数吗?没有,那接下来呢,就去定义这么一个函数吗?对吧?各位啊,那在哪定义呢?在它的上方行不行?行啊,在这句话的下方行不行?行,咱不是说过吗?这个函数的调用可以在函数的定义之前是不是?各位啊,那为了大家看起来能够更流畅一点啊,那我就在上面写行不?哎,写一个函数叫做my ref,我觉得这好理解吧,各位,毕竟你这是一个函数在调用啊,那这当然得准备好一个函数啊,对不对?好同学,我们就管第12行的这个函数就叫做一个。
04:56
自定义的re,哎,自定义一个ref,然后呢,来一个破折号,叫做什么呢?My ref,哎,名为OK my ref,来吧,开始写,各位慢慢来啊,就我写到这儿呢,大家应该有一个反馈,说老师其实我明白了,所谓的自定义ref,它本质就是个函数呗,诶可以这么理解,没毛病,对吧?这不my ref吗?那你这不是用了吗?好,那接下来呢,嗯,给没给人家传一个数据哈,那你说你这收不收?
05:28
肯定得收,你说对吗?各位来,我引导大家一波同学,我说ref是一个容器,你认不认可?哎,无论是程序员自己定义的还是vu提供的,我就说ref可以理解为一个容器,你认不认可?你就比如同学vu给我提供的ref,比如说是一个红色的盒子,那在这儿呢,我就把hello,哎,就这个字符串就交给了这个红色的盒子,然后红色的盒子能帮我实现响应式,对不对?各位,哎,有人可以从这盒子里面读取数据,程序员可以告诉这个盒子修改数据,是这意思不?哎,那我们定义的这个自定义ref,它也是一个容器啊,啊,那你给人家传数据了,那人家这儿当然是不是得收到一个value啊IOK,在这呢,同学什么也不做啊,先来一个conslo,叫做my ref啊输出,然后在这呢,再来一个Y6值,这可以吧,来一小逗号走着,嗯,回头看下效果啊,刷新一波,诶看my ref hello,是不说老师这就实现了吗?当然不是啊,各位来你输入点东西,下边有呈现吗?
06:28
下边这当然没有来回来接着写里边啊,同学,咱就得写写真正的逻辑了啊,那是这样啊,声明一个事儿,所谓的自定义ref,也不是说我们完全自己写,哎,就一听这名啊,可厉害了,哎呀,自定义ref,说老师是不是关于ref的底层实现的每一行代码我接下来都得写在这个绿色区域啊,同学,那不把人累死了吗?而且你这么写也没有意义啊啊,那我们得借助一个API,这个API的名字各位叫做customer ref,哎,就有一种什么样的感觉呢?美其名曰自定义ref,其实也是借着这个东西去生成,说老师呢,这个绿色的customer ref和这个红色的ref,它俩有啥区别呢?用一个生活中的例子啊,去给大家说这个呀,就是属于精装房,哎,精装对吧,拎包入住,哎,就是装修啊,什么家电啥的全都配齐了,哎,精装的特别棒啊,那这个呢,各位就知道了,属于什么呢,哎,咱们。
07:28
生活中的毛坯房对吧,就一上来同学就是什么都没有啊,水电都没走呢,就是水泥墙水泥地毛坯房啊,那么毛坯房里面各位需要我们进行装修,那接下来呢,各位首先把这毛坯房给它拿过来,完了呢,我们再开始装修,这个ref本身就是精装修的了,你不需要操作啥了,你就点歪就取你的数据就得了,是不?各位好来着,那在这儿调用它这个customer ref呀,和人家提供这个ref呢是一样的啊,所以说呢,也得哎写一个小括号都是函数啊,我说数据类型是一样的,我不是说里边的实践实践可能是一样的吗?啊,类型是一样的,OK,调用,那调用问题是它能返回一个什么东西呢?哎,就能返回一个自定义的ref,那在这儿我是不是可以拿X接收一下,但是同学你一定要记着你所得到的这个X,最终最终一定返回出去,要不你这my ref写的就没有意义了,大家想,你在这写了一堆,哎呀,我写了一堆,好了,同学,这一堆东西啊,全弄完了,掉了一堆。
08:28
Ref,结果呢?嘿,你这my ref没有写返回值,没有写返回值那不就是按find的吗?那你这些不都白玩了吗?哎,所以说各位来走着,我们应该return这个X,但是为什么把东西写的这么复杂呀,Return直接连在这儿是不是就可以了?哎,可能我说到这儿啊,有些同学觉得,哎,老师真墨迹同学,因为这东西不太好理解,我们必须慢慢来,好写到这儿了吧,嗯,说老师那我看效果吧,是吧,来回来报错刷新一波,报什么错误呢?一个底层错误啊,说这个factory is not a function,意思就是回来你少参数了,这个customer ref,各位接下来光标闪烁位置到底能写什么,不是由我决定的,这是由view的作者决定的了,对不对?人家这API看看人家怎么设计了,它的要求是这个customer ref,既然是自定义,那么就要求你写一个函数进去,其实大家呀也可以想象一下,你说如果是把这VALUE6直接丢进去啊,完了,Customer ref和ref底层实现是一样的。
09:28
同学,那你说那还能叫自定义了吗?自定义你就得写逻辑,自定义你就得写那些缜密的逻辑代码,那你说各位往哪写,往一个字符串里写,不可能,所以说是往哪写,哎,往这么一个函数里面写啊,慢慢来,老师写到这就行了呗,那看看呗,回到这刷新一波,又报错了,报的什么呢?是get没有,哎说老师这是怎么回事呢?来回来各位啊,它的要求是就是这个函数啊各位,这个绿色的函数有官方要求,必须得返回一个对象。
10:02
啊,就都是view的要求,Cos ref调的时候得传入一个函数,然后呢,你所有自定义的逻辑往这里面写,我不管你写了多少的逻辑,这个绿色的东西有要求必须也得返回一个什么东西呢?对象,那就写着呗,Return一个对象是不?哎,他让我写对象,那我就写对象吗?OK,这两个return你得知道是怎么回事啊,这个是把你忙活了一圈,那个自定义的ref你得交出去是不是啊,那这个呢,那就是语法要求了,来保存回来再看啊,刷新一波走着A呀,同学还是不对,说this点下划线get又是一个底层的错误,来各位。这块有要求,你得写两个特殊的属性,一个叫做get啊,它的值呢,是一个函数,你还得写另外一个配置叫做site,它的值也是一个函数,同学觉不觉得有点似曾相识啊,嗯,那么简单点写是不是它是不是它?OK,那咱就说说这get什么时候执行,咱再说说这site什么时候执行,那接下来呢,给大家画个图来看好了,各位,这绿色框的是什么呀?哎,是你自己定义的这么一个r ref对吧,名为my ref,那在哪用的?哎,在这用的对吗?各位来,接下来你听我说,你是不是把一个hello这个数据传进去了呀?哎,好了,传给绿色的这个my ref这个大盒子了,那以后啊,各位肯定得有人从这个里面读数据,都哪读了呢?模板里面H3里面插值语法是不是读了一次,上边input框利用VGA model,我问你是不是也读了一次同学。
11:40
Ref不就是这么一个中转站,一个容器吗?好,那你听我说啊,你所传入的这个hello啊,确实传进去了,但是当有人想从这个绿色的大盒子里面读东西的时候,Get就会被调用,哎,当有人通过页面上的那个wega model,哎,去影响这里面数据发生变化的时候,那么这个就会被调用,体会体会各位跟我们之前讲那个计算属性如出一辙,对不对?有人读my ref这个里的数据,那就走get,有人改,那就走S是不?各位咱先不考虑改的,咱就先琢磨琢磨这读的行吧?各位啊,保存,这回我告诉你啊,可不报错了刷新。
12:24
不报错吧,是不报错,同学我问你啊,H3里边的数据读出来了吗?没得有,那这个input框里面有初始化数据吗?也没得有,为什么呢?因为你的get没有返回值,哎,返回一个啊瑞返回什么呢?返回个100吧,哎,回头看效果啊刷新诶好家伙,一百一百啊,那你要返回这呢。返回是啥就是啥吗?但是同学我问你初始化的东西,你觉得你应该返回ASD这些字符串吗?可不是返回啥,人家给你的初始化数据是什么,你这里原封不动的给人家,你说对吗?各位初始化吗?没考虑修改的吗?那你告诉我这同学不能WRITTEN100,不能written自己瞎写的一个字符串,你说written啥,你说written啥是不是这个?
13:15
你说对不对啊,来,在这儿lo说出一句话啊,叫做什么呢?有人呢,从my ref这个容器中读取数据了,我把什么什么给他了,哎,那在这呢,同学,我得用那个模板字符串是吧?我把什么给他了呀?刀符画画号什么呢?你给啥你就说啥呗,Y6来看效果啊,刷新一波,请问为什么两次啊,为什么两次呢?那是因为页面里面有两个地方都在读取同取,这儿初始化显示一个输入的内容,难道不是读取吗?那这当然也是读取啊,所以说同学刚才这个里面求助了,这儿这个里面也找了这儿读取数据,对吗?各位,OK,行,初始化的,我们是完成了,慢慢来,接下来呢,我们还是不考虑说等一等,让这再呈现的问题,我们就是先这样啊,把自己所写的这个东西my ref实现一个实时收集的效果,你把实时收集这个效果写明白了,诶你才能去写那个等一等再收集,OK,来,走着吧,各位来ref初始化没问题了,来咱改一下吧,123。
14:27
不行。啊,这没有改掉,说老师页面同学啊,这咱就得这么说,你不用view,你就写一个input框,你在这输入它都有效果,你说是不啊,问题是这为什么没有变啊,那是因为他没有知道有人去修改它,也就是说你的set里面没有写逻辑,Set里面应该怎么写呢?这堆复值咋说有人把ref,诶打把ref my ref这个容器中的数据咋的改了,改了啊啊或者说改为了冒号咋写这怎么写呢?哎,只要你改这块就会收到一个VALUE6,但是为了不让大家把这个VALUE6和这个VALUE6搞混啊,我换个词,同学这VALUE6啥哥们哥们看好了啊,这是my ref收到的Y流,是你传入的初始值,你说对吗?各位,那这个里面拿到的Y流是什么?以后如果有人改了,所以说这个东西是新的值,所以说我写一个new value对吧?各位,哎,把这东西呢放在这来放在这儿好看一下效果啊,刷新一上来两次读取很正常,来我改啊,12345,哎同学是不是能知道有人去改数据了,哎,而且数据是什么,我是不是还拿到了呀?嗯,同学,你离成功。
15:46
不远了啊,接下来咋办?哎呀,琢磨各位啊,反正现在啊,我们把人家修改完的最新的数据啊握在手里了,诶但是我们要实现什么功能来着?各位来这会儿是一个缠绕的点啊各位来,你打起精神啊,你听我说,目前我拿到了别人修改后的最新的值对不对?那我的目的是干嘛?我得让这也变成HELLO12345,你说对不?各位诶,那我再问你这块是哪个结构控制的啊,这块是这H3 h3是不是读了这个keywordd啊,读了从哪读的,从哪读的啊,Keyword在这呢?从这个容器里读的,那读的时候谁工作谁工作,哎,Get工作同学是不是读东西你得找这人要去啊,那也就意味着各位return的这个是不是就是我读出来的值,那你说为什么页面上这个hello死活不动呢?啊,我这都改成这样了,它为什么还不动呢?那是因为你这个geter里面各位是不是一直写着这个return value呢,你。
16:46
死活不放手这个value,这个value是啥?这个value一直是初始化的时候传进来的那个,Hello,你说对不?各位是不是这意思。那你看你你拿着这个哈,你不放了呀,你这盖你一直写这个对不?那你说接下来在光标闪烁的位置得怎么办。
17:02
得怎么办?人家读数据,人家去找get,然后get那边的东西吧,你还不变,那你说这能行吗?不行,我写这段代码,大家能不能理解好我这么写,哎呀说老师你这写,你这啥意思呢?这value不是一个行参吗?同学,行参是不是也是属于函数作用域里的一个变量?那我最开始确实用它了,对不对?拿到这hello了,给人家交出去了,但是以后呢?以后难道我不能修改了吗?函数接到一个参数之后,难道不能改了吗?完全可以呀,对吧?我在这就把人家的最新的VALUE6赋制给谁?赋制给这个VALUE6,我咋这么稀罕它呢?为啥非得给他呀,因为get里面用到了它,你说对不?哎,想想琢磨琢磨,一个连锁反应,最开始确实用了,最开始用的时候是初始化传进来的,以后也得用,但是咋的?诶,已经被改掉了是不是?各位OK,是不是得这么写?哎,但你这么写之后啊,各位你看一下效果啊,刷新啊,一上来读取两次,我改啊,一二三一直说有人咋的把什么什么什么改了,也就是说同学这些输出都是哪个里面的输出,塞里的输出。
18:10
但现在你发现塞特也确实很给力的把那value给改了,那你说现在同学有没有种感觉,就是我得通过某种办法,我得告诉get特说,哥们,你再调一下呗,我求你个事儿,你再调一下,盖特,你再调完了,你看你再这value,那return的不就是我这改完的value了吗?你琢磨琢磨各位,哎,你21行的确改了,你改完了之后人得再调用啊是不?各位那怎么告诉他呢,是不?哎,各位这块就得用到customer ref调用的时候传入的那个函数所收到的两个参数了,哎,是在这给你的第一个参数叫做t r a track,第二个参数呢,T r trigger啊,Trigger什么意思呢?查一下啊,Trigger有触发器触发的意思,我们用这含义叫除发,哎,触发,那在这呢,同学在哪调trigger啊,你在塞里面收到了数据,你改掉了数据,随后trigger trigger是什么含义?来走着各位叫做通知view去重新解析模板,诶说去吧,View啊,我这数据改完了,你去重新解析一下模板吧,那么这个时候各位view就会重新解析这些东西,那么view就会重新分析keyword。
19:30
的keyword,然后这个时候view就会去问这个get说哥们把你那个keyword给我吧,他说那我就把value给你,然后结果这value咋的?诶是你在这已经改完的了,对不对?各位来,我给你编个号啊,这是第一步,你得把数据改掉啊,这个呢是第二步,哎,你得去通知view重新解析模板,他一解析,诶来到了这块,嗯,再换个颜色,这个return这个诶这是第三步对不?各位一个更新的流程,那当然一上来初次展示,那这会儿肯定是numberone,你说对不?哎,OK,老师,那按照你这么分析呀,那就应该成了是吧?来刷新一波啊123,哎哟,我的天呐,这什么情况呀,是吧?各位一直在这还是塞里的调用,这咋还不变呢?各位,就剩最后一步你就成了啊来听我说这个track你没用track啥意思呀,搜一下啊,走track追踪,哎,我们用这词啊,不用轨道,用追踪,追踪什么意思呢?同学,我给你完整的描述。
20:30
注意一下,现在为什么不好使啊,各位,如果我是VIEW3,我再给你描述我的工作原理,哎,说哥们刚才你在这改数据了,我听说他说啊,你改成啥了,HELLO1,哎,这是第一个动作,你在这改东西了,随后塞就调用了,那么在这呢,这个new value,诶各位啊,慢点说,就是你的hello几能一哎,然后在这呢就拿到了,然后在这呢,同学特别给力,你是不是把数据改了?哎,然后在这呢特别给力,你告诉viewu去重新解析模板,嗯,View就回来了,哎说那哥们我得重新解析一下呀,然后这个时候各位他就解析到了a keyword,哎,然后他就解析到了这个keyword,哎,然后他就说了,说那哥们啊,那你等一等啊,就这俩keyword啊,我得找一个人,我得问问去,对不?你让我重新解析模板,我得重新问一遍呀,就来到get这块去问,正常来讲,听我说各位就我写到这儿应该毫不吝啬的就把修改后的VALUE6是不是给他,但是到这儿同学get特不愿意了,Get特说有完没完了,天天找我对吧,这这这用到key word。
21:30
地方就找我,不行,我不干了,你提前跟我商量一下,你告诉我对吧,你鼓励鼓励我啊,或者说呢,你这个给我点奖励,也不跟我商量商量,最起码你请我办事也得请我吃顿饭呢,那这个时候同学你就得在这儿调一下track,在哪调呢?在get里面的返回值的前一刻,你调一下track track的意思,同学刚才说了是不是叫追踪,那这个的意思就是追踪一下keyword的改变,如果你不追踪,我跟你讲后果就是你这边整个流程都形成了,你就找get去取值的时候,Get说你滚蛋吧,我不会理你的,我也不会重新调用的,因为你提前没跟我打招呼,你没告诉我要追踪这个数据,对吧?你我只是给你办到一件事儿,就是初始化的时候,我调用,我把值给你,但是你没跟我说要追踪啊,哼,我可不帮你追踪,以后你改出花来,你怎么求我,我都不带理你的,因为你没说要追踪对不?各位好,把这追踪打开,那这是什么意思呢?哎,叫做通知view追踪谁呢这个数据的。
22:30
变化哪个数据,你返回的哪个数据,那就追踪哪个数据呗,那我就这么说吧,追踪value的变化,那在这儿呢,我们就可以理解,为什么呢?这叫做提前和这个geter啊商量一下,然后呢,让他哎认为这个value是有用的,哎你要不让不让他认为是有用的,他就不管你了呀,对不?各位哎,他就不会再理你的了。好了,这回呢,刷新一波啊,看着各位123来效果是不是实现了,看一下右边的这个流程啊,刷新一波一上来读两次是肯定的,接下来你瞧好了,各位,我把hello改成HELLO1,你看看是不是刚才我给你形容的那个流程啊,走读这各位有人把my ref这个容器中的数据改成HELLO1了,然后怎么着?各位哎,然后整个流程都形成了,然后去找谁找get读数据去,由于页面上用到了两次keyword,所以说同学这找get读一次,这也读一次,OK,完整流程实现。
23:30
完毕,但是我没有实现什么功能呢,就是我输入一这等一会儿再出结果,那同学就非常简单了,来怎么着各位,嗯怎么着,我是不是在这儿让他等一等就得了,我可以让这个值咋的晚一晚再改,或者说各位我更狠一点,我让这个吹格啊,等一等再执行是不是就可以了?嗯,你比如说别人改了东西,我就偏要等一秒钟再告诉,又去重新解析模板,是不是就可以?哎说老师那我要不告诉呢,看着啊,有track没trigger,那意思就是逻辑在这停掉了,数据你改的可好看了,但是你就不告诉V去重新解析模板,那么结果就是你怎么改它也是没有效果的,我知道你改了,但是你没有通知我去干嘛,更新模板或者更新页面,觉不觉得这是一个手动挡的车,这是一个自动挡的车,那为什么你喜欢这手动挡的,为什么要学这个呢?因为手动挡的车可玩性很大,里边可以自己写逻辑,对不对?各位想想生活中的例子,自动挡的车发动机转速到了多少了,自动就给你调到多少档,对不?但是手动呢?那是可以自定义的是不?
24:30
对,在这呢,Trigger解开,那如果这是同学,那刚才看过了是不?咱就不再演示了,接下来同学写吧,这怎么写啊,把这俩都包里呗,写1SET time out,走你啊,等多久来着,刚才说等一秒钟,那么在这儿我就直接把这玩意儿往这一放是不就得了呀?各位来看效果呗,刷新一波啊,写个一等一秒。写个二等一秒是吧,哎一秒有点太长了,500毫秒吧,半秒钟刷新看效果啊一啊二嗯三对吧,哎,这当然是四啊删掉哎是三对吧,有效果吧,好回来各位,但你这么写啊,有bug哎有什么bug呢?来回头看一下效果啊各位看着啊,我一直摁这个二啊走走走走走走走走走诶看什么效果,仔细看啊来刷新一波再仔细看,走走走走走我可没有删除过啊,但是你发现诶弄不弄就退一下,哎再看效果啊来走诶你看弄不弄就退一下,这什么情况啊?哎,这是因为各位啊,你这个定时器啊,如果一直在这开着,那就意味着各位你说每次修改是不是都要开一个定时器啊,而且你这里面同学你说当我输入的快速的时候啊,就是我这个频率是比这个500毫秒快的时候,不不不不速度特别快,那其实你就开了一堆定时器是不,然后就把很多的这个赋值,把很多的这个吹都。
25:51
积压在一起了,那最后肯定会形成这个问题,那怎么解决呢?很简单,就是在这儿啊,我light一个timer,哎,就是定时器,然后我每一次开定时器的时候啊,都把这ID交出去,然后我每次进来的时候呢,同学我都写这么一个东西叫做clear timeout,嗯,什么意思呢?就是如果你之前有定时器啥的,那我就清掉,哎,然后我重新给你开一个,你看这么写啊,各位就有意思了啊,什么叫防抖呢?瞧着啊,我一直敲二,我一直不停,你发现下边动吗?不动,你看我一直敲,他也知道,你看他也知道我一直在改,但是页面就是不变,对吧,因为定时器不断的被开启关闭,开启关闭对吗?各位好了,停。
26:29
哎,等了多久,你看这么长等了500毫秒是不是出来了,这叫防抖啊,对不?各位来123123123123123123,什么时候我停,什么时候它才出,对不?各位啊,而且你可以做的更好一点,就是现在这个500毫秒我是不是写死的,你当然可以在这儿来一个呀,比如说来一个500在这传进去,那这呢,你是不是可以收到一个,比如说呢,我们叫做T,哎或者叫这词也行啊,各位走着,哎,叫做延迟啊,延迟走这儿,哎叫做delay deflay,用这词也可以啊,就官方一点呗,Delay,然后在这儿呢,同学是不是写上这个delay啊,那接下来同学觉不觉得你这个my ref,哎就有点意思了,可以让他怎么的,诶延迟一会儿去维护这个数据好了,刷新一波啊,测试一下,一松手走是不是实现了,这就是自定义ref,诶回到我们的笔记里面,直接把代码贴给得了啊,大家可以自己呢去看一下,OK,这就是自定义ref来同学咱捋一下啊,就是读东西找get。
27:30
改东西找塞,但是你得怎么办呢?在关键的时候掉点特殊的东西track告诉他追踪数据啊,这个trigger呢,告诉他重新解析模板,就这回事儿,OK,各位,这一小节停。
我来说两句