00:00
好嘞,各位同学,那么今天啊是咱们项目的第五天,那咱们呢,今天呢,在讲新的,呃,项目的时候呢,咱们呢,先把昨天的一些重要的知识点呢,咱们呢稍微复习一下。那首先说啊,咱们昨天呢,做了这样的几件事,第一个。第一个呢,就是可以实现咱们的商品分类列表的路由跳转,以及也做了相应的路由传参以及参数呢,也进行了合并,对吧,所以说啊,咱们昨天的做的这几件事呢,老师呢,也复习一下。比如说第一个,那么昨天呢,也就是昨天咱们完成了什么呀,就是完成了商品。分类的三级列表的路由的跳转。那以及啊,咱们的路由传参,但是要一定要注意,咱们也完成了另外一件事,就是合并什么呀参数对不?因为不管是商品的名字啊,还有这个商品的ID。
01:07
以及你搜索的关键字,在咱们的设置路由当中都是会用到的。对不,那以及啊,咱们也完成了另外一件事,就是对于呃,奢侈路由下这个type nv的一个制作。对吧,所以说第二件事呢,咱们呢,也完成了什么呢,就是完成了色模块中。对于type NAV的使用,哎,Type NAV的一个使用。而且呢,在测试路由当中啊,这个type nv是有过度动画啊过度动画的。好嘞,那以及啊,咱们呢,也是对于type n NAV这个呃,组件发请求也进行了优化,对吧?啊也就是说对于type啊NAV。
02:00
路啊,就是这个请求的次数,那么也进行了优化,那优化呢,最终的咱们的解决方案是放在哪呢?是放在咱们的app.view跟组件当中,对吧?因为app.view跟组件呢,它只会执行一次对吧,它的monkey,所以说放在APP跟组件的monkey当中是更合理的。那以及最后一件事,昨天呢,咱们学了一个小小的一个插件,叫做s wiper。那对于ser啊,这里呢,老师呢得说说,因为我不管咱们前面是学过还是没学过,对于swaper这个插件,哎,这个插件。对吧,那你务必呢,要给他玩懂啊。那首先说啊swap啊swaper这个插件,它经常干什么呢?就是经常制作这种轮播图。而且呢,还要注意一件事,就是swaper这个插件不管是在移动端还是在PC端都可以使用,比如说这个小插件的移动端是可以用的,PC端也可以使用,哎,也可以使用。
03:14
而且呢,到这个阶段,老师呢,也稍微呢,带着你们呢,复习一下移动端。这里一定要切记啊,因为移动端的知识点也很重要,就比如说移动端当中咱们学了谁学了rem对吧,是不是学了rem适配。对吧,以及市口的约束,像这些东西你千万可别忘了。因为你在工作当中,你可能写的是PC端的项目,也有可能写的是移动端,那当然咱们现在所开发的是PC端。所以说,如果将来遇见了移动端,千万别忘记个东西叫re类。对不,这个你可别忘了对吧,哎,只是它那以及啊还有一件事就是什么呀。哎,就是咱们的这个墨数据。
04:02
Mo数据呢,一定要注意是通过哪个模块,通过咱们的Mo GS模块实现的。对不,所以说呀,磨合数据这个本领你也得会。对不,所以说以后工作的时候,你见到你的项目当中有mark这个文件夹。那他在干什么?在模拟一些数据,但还是那句话,你就把它当做真实的接口看待就行了。对吧。好嘞,那咱们呢,再回到swaper这里,那swaper这里呢,老师呢,还是得说说其实swaper使用的步骤啊,哎,就是使用的步骤,咱们昨天也说了,分为几步,说分为这几大步,第一步干什么?对,不,第一步是你需要引入相应的依赖包。对不,比如说像swa的GS文件,以及还有这个swaper的CSS文件,你得有,那第二步干什么,就是第二步。
05:04
那你页面中的结构,哎,你必须得怎么的,你必须得有,哎务必要有,你没有你是没办法操作到。也没办法给那个轮播图加那些花里胡哨的东西,对不?那第三步干什么,第三步就是初始化,哎,就是初始化咱们的swaper实例。哎,那么就是啊实例啊实例,那么给咱们的轮播图啊,哎,添加什么呀,动态的效果。所以说对于昨天咱们所做的这些事儿,老师呢,就是大概带着你们复习一下子这些东西,经过呃几遍的洗礼之后,我相信应该是没有问题的吧。对不没问题的,给老师扣一个一。说老师啊,昨天的这些知识点没问题了,你就给老师扣一个一,当然里面还有很多其他,呃,细小的知识点,比如说默JS当中的杰森,你不对外暴露也可以用。
06:08
对不?哎,好嘞,别吝惜你的那个键盘对吧,这个老师让你扣一,咱就扣个一好吧,这样老师呢,也能看到你们的这样的一个学习的一个进度。好吧,所以说呢,这是对于昨天的一个小复习,那咱们呢,把咱们这个项目呢,给它跑起来。那咱们昨天讲到哪了呢?是不是讲到了这个轮播图,对不?哎,讲到了这个轮播图,但是这个轮播图昨天老师也说来的。咱们当时采用的是什么?采用的是延迟器。但是你会发现呢,它并不是最终最完美的解决方案,为什么呢?你看当用户一刷新,你会发现底下这个小球,底下这个小球啊,它会过两秒之后才会有。对不,两秒之后你才能点,对不?所以说咱们昨天所讲的这个解决方案不是最完美的解决方案,对不。
07:06
那要注意,那这个组件是哪个组件呢?是咱们的list container组件,它是属于home组件下的一个子组件。对吧,那所以说啊,咱们找到这个组组件,那这个咱们今天第一个要做的事是什么呢?哎,就是最完美的解决方案。解决谁呢?就是这个解决轮波图问题。那咱们呢,得先找到咱们昨天写这个龙墨图的地方。那不就是list container这个组件对不?那所以说呢,老师呢,把左侧这里就给它关了好吧,好嘞,那这里呢,老师呢,把这块呢先给你干掉。这块呢,咱们就都都先给他干掉,对吧,这个老师先给他剪切出来,因为这块代码咱一会还会用,所以这里呢,老师呢,把这呢都给你干掉,咱们也回想一下。
08:05
对吧,好嘞。那咱们呢,先跑一下,先看一下子,那咱们现在这个轮播图啊,是没有动态效果的,它只是一个静态的。对不,那咱们看一下这里的业务逻辑。老师呢,把上面的这里呢也给你折上对不?那么咱们昨天也说了,你说啊,使用swaper这几步不就这几步嘛,第一步引包,引一引,引入相应的依赖包。比如说啊,你引的这个viper咱已经引了。对不,那以及引入swap的样式啊,咱也引了,只不过是在入口文件引的。那为什么在入口文件引呢?因为你会发现将来这个样式啊,在底下这里也会用,所以说在入口文件引一遍即可,不用在每一个组件都再次重复的去引这个swaper样式。
09:02
对吧,好了,这是它那第二步你得有啥,你得有相应的结构。对不,那也就是说咱们的这个轮播图这里啊,它这个sli sli是什么呢?是每一个滑动的那个图片。那也就是说它的结构必须得有,有了结构之后,你才能初始化swap实力。所以说呢,咱们昨天呢,想到说老师,那我知道了,那newwiper的实力的地方,不就是放在monkey当中吗。对不,那不就是放在这儿了。但是这里一定要注意一件事,这里老师写一下。那首先说啊,咱们宇哥以前应该说过mont mon的是什么,Mon的代表的是组件啊,组件挂载完毕。对吧,就是组建。挂载完毕对不?那什么叫做组件挂载完毕,那正常说,哎正常说,那也就是说组件的结构对不?也就是说do应该咋的了,哎,应该已经全有了,哎,全有了。
10:14
但是呢,你一定要注意当年宇哥说的这句话,它是没有涉及到阿贾克斯,没有涉及到动态的去渲染一些结构。你要注意啊,咱们当年讲生命周期函数的时候,根本没有出现as。对不也根本没有出现动态的去渲染结构,你看这里咱是不是在动态的渲染结构,为啥什么叫动态。你这个数据是来源来自于服务器,那你服务器当中的数据返回过来了,组件身上有了,我是不是才能渲染出这块的结构,就这能不能懂。一定要把这里相等啊,也就是说咱们其余的结构,那当然你只要1MONKEY就已经加载完毕了,但是这里面出现了一个结构,这个结构用的数据是来自于服务器,你V-for便利的前提是什么?前提是请求发出去。
11:10
服务器的数据回来了,组件能捞到仓库当中这个数据了,你才能便利。对不,所以说咱们当前的这个案例啊,一定要注意。那就是说,呃,为什么啊,为什么咱们的这个swaper实力,哎实力在这里就是在mount当中,哎当中。那么直接书写不行啊,就是直接书写不可以,哎,不可以。为什么?哎,就是因为结构怎么呢?哎还没有完整。对不,那么昨天呢,老师呢,也给你们去打印来的,你看咱们呢,再把这呢,老师呢,再捎带脚再给你打印一下子,你看比如说这是什么。这块呢,咱写了一句话,哎,比如说写着一个叫做我是mount的,哎,我是mon mon的对不?那代码是一行一行执行的,那执行完101行是不要执行102行。
12:14
他是不是要派发一个action。通知咱们的voe叉,告诉大兄弟,你得咋的了,你得发请求了,那请求发了是不是提交纽修改state state有了你组件是不是才能捞相应的数据?对不,那所以说咱们看一下好,他派发了一个action叫做get banner list,你看吧,咱找咱们的仓库。对不,咱们找一下咱们的仓库啊,这个名字叫什么,叫做get b list对吧,咱这也打印了,那以及修改仓库当中的数据。对不,那咱们当年你想在哪初始化外P是不是想在这你看嘛,那这里老师给你打印一下子说哎,我要初始化swaper。
13:01
那么老师呢,把这个执行的顺序啊,我给你打印出来。您呢也自己呢,稍微的用点心去看一下子,你自己去看看。那首先说执行的顺序是什么?执行了我是monkey。对不,那以及获取服务器的数据,那没问题,你也向服务器发请求了,服务器也做出相应的响应了。对不完了,你就要初始化外。这能对吗?指定不对,为啥?因为你连仓库当中的数据你都没有修改,你组件怎么可能捞到数据?就这能梦想懂。就这个书这个这个这个这个怎么执行顺序,老师都给你打印出来了,你就想想你要在这儿初始化外,那前提是啥。前提是你这个组件的身上得有仓库当中的数据,才有可能结构已经完整。而仓库当中的数据连修改都没修改呢?也就是说服务器的数据。
14:04
回来了,我连仓库当中的数据连修改都没修改的,那你想想当前的这个组件身上可能有这个数据就不可能了,就哪个数据是这个banner list。那这个数据连有都没有,你想想这块微钢炮,你便利它可能有结构就不可能了。就这能不能想懂?那相等的,给老师扣一个六对不,那所以说你直接放在这里是不行的。对吧,那所以说呢,老师呢,把这些打印的地方,老师呢就给你去掉了。对不,这个还是给它去掉。所以说这块呢,一定要搞搞懂,那所以说咱们昨天找到想到的第一种解决方案是什么呢?就是比较糙的一种解决方案,就是再来个啥,再来一个延迟器。对不,就是你再给他搞一个异步语句,对不,Set谁time out。
15:00
对吧,因为异步语句,你只要有足够的时间去等待,那我相信那组件身上会有数据。对不,那以及结构也会有的,那当然你等的时间不能太长啊,那假如说你等个两两万年,那好家伙,这个用户为了等一个轮等2万年,那这不行啊,所以你就选个时间,一秒啊两秒啊都可以,那你这样去初始化咱的wap就行了。对不,那所以说你看这回看一下子,那咱的这个呃呃,这个轮播图一秒之后不就有了吗。但是昨天老师也说了。这个呢,一定要切记一件事,在工作当中。一定要记住,咱不管说这种解决方案完不完美,在工作当中你最基本的一件事,你先把这个功能先给我完成了。当测试测出来,哎,一看说你这有问题啊,你这玩意儿是过一秒之后才有的,这不行啊,等测试测出来了,你是有时间去改的。
16:04
所以说这里面老师想表达一件什么事呢?就是在工作的时候,你先别管这种解决方案完不完美,前提是你先把这个功能先给它解决了,如果测试测出来了说哎。你这个功能有问题,那你是有时间去改的,这能懂不。就这能不能懂。能懂吧,那所以说现在明显是有问题的,什么问题,你底下的分页其实在一秒之后才有的,这不完美。那所以说咱们不采用这种解决方案,老师把这块代码给他剁了,将来咱也用,所以这块咱就不这么搞了,那你说咱不这么搞怎么搞呢。这块你得琢磨琢磨了,说老师我这块的话,我不想在monkey当中搞了,我想换一种解决方案,那换可以。那你得想想那在哪搞。
17:02
在哪等来老师想问问你,问问你们,就是咱能想到的啊,昨天有个同学说老师放在update,那昨天老师也说update当中行不行不行,那假如说你这个组件还有其他的想式数据,你只要说讲式数据一发生变化,那好家伙你又再重新new。对不,那这块你得琢磨琢磨。说老师啊,我就想放在mon当中,咱不已经解决完了吗?不行,对吧,你会发现那个飞行器一秒之后才有,那用谁解决呢?老师说一个解决方案,他是最终的解决方案,谁呢?Watch。哎,老师问一下子,你们还记不记得有一个东西叫做watch?叫做watch基础的时候应该学过。所以咱们最终的解决方案是通过谁呢?是通过watch监听。Watch watch监听,数据监听。
18:00
对不,而且当时咱们也讲过它的原理。对,不是不是通过object DeFine的property。什么叫数据监听类的?是不是监听已有,哎,已有数据的变化。对不?这一定要记住,Watch是用来干什么的?是监听数据的,监听什么,监听已有数据的变化。那你就想想啊,老师问你啊。你说咱的这条数据啊。有没有发生变化,这个就不是相当于咱组件身上的属性嘛,你看嘛。来,你看这儿。来啊,老师呢,把这个开发者工具呢,我给你打开,咱们找到list container,你看这儿。就是这个banner list这个属性的属性值,老师问你有没有变化。你就先把这先想明白,有没有变化是有的,为啥你看。咱们banner list这个属性的属性值是来自于仓库,你看嘛,是不是来自于仓库,来自于这儿。
19:08
这当中的这儿。那你就要想明白啊,仓库当中这个banner list,这个属性的属性值有几种情况,有两种。最开始是空的。对不?那当服务器发请求成功之后,是不是由空。把空的这个数组是不是替换为不是空的那个数组。所以说这个属性的属性值有没有变化是有的。就这能不能想懂?也就是说什么意思,就是咱们仓库当中这个班list这条数据。它是有状态,什么状态最开始是一个空数组。对不?那最开始,最开始,假如说你没有发请求,最开始是不是一个空数组?那假如说你向服务器发请求了。服务器接收到请求,把数据返回过来,你是不是由一个空数组变成一个数组,里面有元素,应该是有四个元素的这样的一个数组。
20:07
所以说这个数据是有变化的过程。所以说咱们可以由报纸机器去进行监听。这个能不能懂,能懂的给老师扣一个一。那所以说咱们组件身上捞仓库当中,这个数据也是有变化,也是有数据变化的,对不是有空数组和数组里面有四个元素,因为咱们这个轮廓图不是四张图嘛。对不,咱墨克这个数据,你看一下咱墨克的这个数据不是一个对象嘛,就是龙波图这个数据,你看这不是一个数组吗?数组里面不有四个元素吗。对不,那所以说咱们可以监听组件实力身上这个班ner粒子的属性,监测它数据的变化。就这能不能懂,能懂吧。那所以说啊,咱们可以加一个谁加一个叫做watch。
21:01
对不?那watch老师问你啊,咱还没写呢,老师问你,他有几种写法。就是watch有几种写法,是不是有两种写法,一种是对象的写法。另外一种是函数的写法,对不?这有点印象吧,有吧,哎,所以说呢,咱们要监听什么呀,就是监听,哎,监听咱们的banner list数据的变化。看数据的变化,哎,数据的变化为什么。因为。这条数据它发生过变化啊,就是发生过啊,发生过变化。怎么变的呢?是由一个空数组由。哎,由由什么由。空数组变,为什么变为数组里面有四个元素这样的一个过程。所以说咱们是能监听到,监听的是谁,是叫做banner list,你单词不能错。
22:06
对不?那当然老师选择的是对象的写法。对不,那如果是对象的写法,你想监听这个属性的属性值的变化,你得是不是写一个函数,写个回调叫handler。Handle这个单词呢,是有事件处理的意思。就这个还有没有点印象叫handler单词别错啊,叫做hand。它可以监听到新的值new y,当然这个你可写可不写,还有个谁,还有一个叫做呃,O的YO的Y。对不就到这儿,有没有点印象。这里一定要注意啊,咱们现在采用的是对象的写法,对象的写法你这必须得有一个叫做handle单词,连错都不能错。对不,所以说你可以监听到什么,监听到组件实力身上的这个banner list的这个属性的属性值的变化。
23:03
对不?那咱们尝试一下的老师把这个newwaper我给你放在这里,你看一下子行不行。来老师给他格式化一下。来,你看这儿啊。就是这块呢,老师呢,给你写一下子。就是现在啊,哎,现在咱们。通过watch。监听什么,就是呃,Watch watch监听,哎,听咱们的。Banner例子的属性的属性值的变化。那如果说你执行了banner list,比如说你监听的这个回调执行了,那前提是啥?老师问。老师问你,比如说如果说这个回调执行了,我问你有一件事,咱一定能确定什么已经有,就是数据已经有了。就是banner list的数据一定是有的。
24:01
对不,那也就是说如果,哎,如果执行什么,执行handle的方法代表什么,代表咱们呃,组建实力的身上。这条属性,由这个属性。的属性值应该有了,应该有了,应该是个啥?是不是应该是一个数组?数组里面有四个元素,就到这儿,能不能想通?就到这儿,能不能想通?也就是说,你执行watch watch是干啥?是监听属性的变化。那如果说你已经执行的handle了,代表啥?代表着你这条数据这个属性的属性值是不是一定由空数组变为数组里面有四个元素了,数据是不是一定是有。就这能不能想通?
25:00
到这儿能不能想通?给老师扣一个六,如果能想通的情况下,给老师扣一个六。也就是说,我再说一遍。也就是说你这个banner list的这个监听,如果handle了执行,那代表啥?代表服务器的数据已经返回过来了。代表仓库当中的数据也有了,代表组建实力身上也有这条数据。对不,那咱们看一下,你看它能执行吗?你就看它效果行不行,你看。不可以。老师给你刷新啊,刷新来你看这儿不行。你看吧。是不是不行?那老师问你为什么不行呢?你看嘛。老师给你刷新啊,你看一下子我给你刷新走。你看飞儿起还是没有,我老是点它还是不行。那这会你就在琢磨为什么不行?我数据有了,为什么还不行啊,你说不行的原因是什么?那还是原来的那个问题,什么问题。
26:02
老师也给你们思考的时间,就是你现在这种写法还是不行,为什么呢?说老师数据不都有了吗?数据不都有了吗?那为什么说还是不行?跟immediately没有任何关系。跟什么什么,有没有立即监听没有关系,你写成一米D,它也是一样的。它也是一样的。就是你要想明白他为什么不行。啊,深度监听也掰扯,这不都监听到了吗?还什么深度监听?那老师给你打印一下子,什么深木深度建立什么什么那个英敏特第二来呀。对不,你深度监听什么什么深度监听,我现在问你,咱监没监听到。你监没监听,你监听到了,你看嘛。你蒙,你也不能这么瞎蒙,你看是不是坚没坚挺到,坚挺到。你深度鉴定它不也一样吗?对不但是为什么说你看一刷新,你看它为什么还是不行。你就得琢磨了,为什么在这new newspaper的不行。
27:06
咱别管昨天提没提到,你得想明白,就是现在还是不行,那只有一个原因,什么原因在newwaper之前结构还是没有。你想想吧,是不是这个道理?就是你在这new外为什么还是不行,那你就想想吧,还是啥,因为还是没有结构,为什么呢?因为你想想你现在执行这个函数,你只能保证什么。这块老师给你写,比如说现在当前的这个函数执行。你只能保证什么?你只能保证数据已经有了。但是你微杠噪便利数据是不是也是很耗时间,也是耗时间的。就是现在咱们底下那块代码,你只能保证什么,你只能保证数据已经有了。但是V-for有没有执行完,咱们是没办法判断的。
28:03
对不?你想想,咱的watch是监听数据的变化,你现在只能保证数据已经有了,但是V-for有没有把结构渲染完毕,咱是没办法确定的,就这能不能相等。对不?你便利他也需要时间呢。对不,所以说你现在在这儿的代码,你只能保证什么,就是当前这个函数执行,你只能。保证。Banner list的数据已经有了,但是你没办法保证保证什么。保证V-for已经执行结束了。对不为什么,因为你想微杠放,老师问你微杠放执行耗不耗时间。就举个例子,我微杠号变一个数组,数组有1万条数据,我问你耗不耗时间。
29:03
嗯,老师问你们,假如说有一个数组,数组里面有1万条数据,你微杠号便利,我问你是不是也要耗时。你VE底层是不是也得进行操作。对不,所以说你这块你写一个watch,你监听这个属性,属性值的变化,你只能确定数据有了,但是V-for有没有执行完毕,咱是没办法确定的。对不,所以说watch你只能保证数据有了,但是你不能保证,你没办法保证V高放已经执行完毕了。因为V-for执行完毕,结构才会咋是不是才会因为V-for执行完毕了,你才有结构。结构,但是你现在在watch当中,你是没办法保证,那么你现在在watch当中。你是没办法保证的。
30:02
就这能不能想懂?可以吧啊。那所以说。咱们呢,在这儿呢,得学一个新的技术,叫做Dollar next t。啊,所以说咱们这个完美的解决方案,最终的完美解决方案是什么?是watch结合谁结合Dollar next t。啊叫NPE完美解决。但是nice k,咱还没学呢,但没关系,咱现学。啊,这个有一说1NICE t宇哥应该是没讲过基础不会讲这个东西。OK吧,所以说呢,咱们一会儿呢,要看一下nice t该如何使用。但是在讲nice t之前,你再认认真真的把刚刚老师解释的这些东西,你再琢磨琢磨,是不是这个道理?你自己琢磨琢磨。先淡定一下,先琢磨琢磨,咱们再去讲nice t就这能不能想懂?
31:03
老师,最后再解释一遍。也就是说,你watch监听banner list。你只能保证保证什么这个属性的属性值发生变化。什么叫发生变化呢?你是由一个空数组变成一个数组,里面有数据的这样一个数组。但是你没办法保证,因为你底下的watch只能保证数据已经有了,但是你没办法保证V杠已经结束了。因为V杠耗便力,它动态变离数组的时候也是耗时间,咱别管它时间耗多长时间,就哪怕是200毫秒,那也是耗时间。所以说咱们这里没办法保证结构已经有了,因此你在这用外是不行的。那所以说咱们得用到谁,用到nice t,那咱们看一下。搜一下叫nice的。啊,什么nice kk啊,咱们搜官网。
32:03
这个呢,咱们呢得说说咱们呢,看一下咱们的API。在API当中啊,咱们看一下有没有叫NT啊,当然啊,这是全局的,那当然组建实力身上也有个叫Dollar n t属性。OK吧,你看吧,有全局的就一定是组建实力身上的叫Dollar next t。啊,咱们找一下看这这是不是也有组件实力身上是不是也有。对吧,叫VM的时,你想VM的实生有了,我问你咱组件实力能不能用。喂。老师问你啊,VM身上有的属性组件,实力身上可不可以用,可以吧,咱当年不说过吗?就讲到了bus的时候。组建的父亲的父亲不就是VM的原型对象吗?Voe的原型对象吗?是不是可以用对不?所以说咱们说一下谁呢?说一下呢,这个不管是全局还是组建实习生都有这个方法,叫做nice ticket。
33:03
那咱们呢,先读读这句话,看这啊,可能读不懂。你看叫做nice。它的用法呢,是要传一个回调函数啊,那咱们看一下底下读读这句话,这句话呢,可能第一遍读不懂,但老师多带你读几遍。OK吗?O,不OKOK吧,你看读多啊,你看这。在下次到更新循环结束之后,记住啊,循环俩字啊,还有个什么下次。在下次到更新循环结束之后执行延迟回调,就是执行这个next p的回调。再读读啊,在修改数据之后,立即使用这个方法获取更新后的道。
34:01
就这句话吧,你第一次读的时候吧,你感觉有点读不懂。你再读博啊,老师到了重要的地方,我会给你认认真真的大点声读,你也稍微去听听,其实最重要就是后面这句话。看这啊。在。下次到更新。你看它这块有一叫下次。认认真真读啊,因为老师会解释啊。在。下次DOM更新循环结束,老师问你什么叫循环?诶,老师问你什么叫循环解数。来告诉老师,什么叫循环结束。其实他是个暗,还告诉你有些东西了。什么叫循环结束?所以什么叫循环结束?V杠放对呀,你像voe当中可以进行循环遍利的,不就V杠放。做,这在人家在告诉你,我老师在告诉你隐含的东西呢。
35:04
你再多。在。下次到更新。周二有个下次啊,你看他说了一句话叫循环结束之后执行延迟毁约。对不完,你再读后边这句话。在修改数据之后,这块他说的模棱两可,修改谁数据之后。对不?在修改数据之后,立即使用这个方法获取更新后的道,好老师,把它给它拿过来,咱解释解释。这块咱会用到谁用到啊叫就是用到这个这个这叫叫做nice ticket。哎,Nice t老师呢,把这句话呢给你放在这,老师呢去解释一下,咱读读。来看这老师先把这个外per这块先给你干掉,来看这读读。
36:00
他说的是。在下次到更新。老师问你什么时候会有下一次盗墓更新?什么时候会有下一次到更新,你想想啊。这个banner list的第一次的起始状态是啥?是空数组?那你第一次在渲染的时候,老师问你第一次渲染的时候,渲染是不是一个空数组,那结构是没有。哎,这能不能懂。就是banner list的初始的状态是一个啥?是一个空数组。你第一次便利的时候,是不是结构还没有?对不,那你读读。在下次盗墓更新,什么叫下次初始是空数据?什么叫下次是不是服务器的数据已经回来了?当服务器的数据回来之后,是不是变成了一个数组,数组里面有四个元素,是不是服务器的数据真已经回来了?对不,那所以说在下次DOM更新,什么叫下次DOM更新,比如说你的数据服务器的数据已经回来了,而且你的V杠号已经打的便利完了,你的结构已经有了。
37:12
就这能不能懂。所以说要理解下次,什么叫下次。Banner list的初始状态是个空数组。它发生变化,是不是变成了一个数组里面有四个元素,说这叫下次。对不在下次到我们更新,而且你看人家后面还有呢,你看再说循环结束之后。什么叫循环结束之后,你微杠都已经咋的了?老师问你什么叫做循环结束之后?是不是代表着你V-for已经结束了?对不对,延迟执行那个nice ticket黄调,那所以说就前面这句话已经告诉你了,告诉你啥结构一定是有的。就这能不能咱后边计划一会儿再说,就这块儿计划,你慢慢品品能不能懂。
38:06
什么叫做下次到更新banner list初始是个数组,你数据回来之后,是不是这叫下一次,是不是就代表是不是第二次,代表是不是服务器的数据已经回来了。你盗墓已经更新完毕了,而且人家说的这句话后面还说了,说的是循环结束之后,什么叫循环结束之后?味道好,完事了。比如服务器的数据已经有了,你循环结束,微干for结束了,那你结构是不是有了,在执行nice的回调?就这句话,老师怎么解释,能不能懂?能不能懂,如果你不懂,你看咱们再读它后面还有一句话,什么话。在修改数据之后,老师问你他修改谁的数据?你要琢磨琢磨什么叫修改数据,修改数据的前提你是不得有个初始值。再给它赋予一个新的值,那咱的班的list不就是在修改数据吗?
39:01
Banner list初始是一个空数组,变成服务器的数据,是不是再进行修改对不?所以你看你读读在修改数据之后,这句话已经告诉你了,非常明显了,什么叫修改数据之后。诶,老师问你什么叫修改数据之后是服务器的数据已经回来了。对不对,而且banner list的数据是不是已经变成服务器的数据了,对不?那么立即使用这个方法获取更新后的到什么意思?你数据回来了之后,我循环结束了。那我倒一定是有的啦,你可以进行其他的操作了,就这块能不能懂,能懂的给老师扣一个六。就这里能不能懂,能懂的给老师扣一个六。其实这块最重要的几句话是什么?一个是在修改数据之后,这句话很重要。第二个是呢,就是这个循环结束之后,你看这俩之后是很重要的。
40:04
一个是修改数据之后,一个是循环之后,你叫什么叫修改数据。服务器的数据回来了,什么叫循环结束之后?你把服务器那个数据已经微放完事儿了,那就也就是什么意思,就是结构已经有了,那结构有了,你是不是可以用外实例。来,别吝惜你们的六,就是如果说你真的听懂了,给老师扣一个六,你们懂扣个二。其他的同学你不抠是啥意思啊?别吝惜你那个键盘好吗?这个你也配合一下老师,老师也看一下你们的这个现在这个接收的情况。所以说这句话当中,这两个之后真的很重要。而且你们自己在下面,在底下写项目的时候一定要记把这两个之后这句话一定要好好给我品品。修改数据之后。循环结束之后,再执行nice的回调。
41:03
对不,那所以说这是最终解决的完美方案,就是在watch当中,你this组件实力身上是有这个属性的,叫做Dollar nice t。对不?他的这个回调什么时候执行。他的这个回调什么时候执行。是不是在修改数据结束之后,循环结束之后,是不是延迟执行回调?那就代表什么,也就是说你当你执行这个回调函数的时候,就是当你执行这个回调的时候。那咱已经保证什么,说保证服务器的数据回来了。回来了,你V杠放执行完毕了,那你说它一定咋的了,那么一定轮波图的结构一定有了。对不?对不,因此你再怎么newwe的实力。
42:02
对吧,那所以说这是咱最后最完美的解决方案,你看啊,你看咱的项目,你回首再看一下,你现在只要一刷新这个小小分儿期就有,你看像老师刷新的一瞬间分儿期就有。你看吧。他没有任何延迟。能不能看到现在老师只要一刷新,你自己看你看吧,菲尔七是不是立马就有,就这能不能懂,这是最完美的解决方案。你一刷新分页器,立马有你的效果,直接可以用。就这能不能懂,能懂的给老师扣一个六。而且老师说一下nine Dollar nine t在工作的时候经常和很多的插件一起使用,因为很多插件它在操作do。OK吗?OK吧,所以说这是最终的完美的解决方案,你自己看。对不上来就可以用。那当然有的同学说,老师,那你昨天讲的那个延迟器可不可以用,可以。
43:01
因为老师还是那句话,工作当中你先别管他有没有bug,你先把功能先给我搞定。对,当然你已经知道了这种完美的解决方案,那所以说你工作的时候再给我写这种完美的解决方案。OK吧,所以说这是Dollar next t的作用,那其实你自己再琢磨琢磨,Dollar next t的作用是啥?无非是保证你页面当中的结构都已经有了,再去干别的事儿,就这句话能不能懂?对吧,那所以说来咱们回首在这个笔记当中,老师写一下子就是这个Dollar,哎,Dollar nest,哎,TK的这个这个这个呃,T啊ti k的一个解释,这个解释呢,老师呢,把它呢也给你放在这。今天在练项目的时候,一定要切记把到next k的这个解释老师也说了,就是带有什么什么之后这两句话你认认真真的品品。
44:02
对,不修改数据之后。对不对。对吧,执行啊,不是循环结束之后,就这两个之后一定要认认真真的品品,而且老师说一下。就是Dollar奈斯特。K,它可以保证什么?可以保证页面中的结构就是页面。中的结构一定是有的。OK吗,而且经常。哎,和很多插件一起使用,为什么?因为很多插件它都需要啥都需要到已经存在了。所以说到了nice。在工作当中经常用。OK吗?所以说一定一定要注意。像这位同学说,老师是专门处理异步的吗?你这句话不对。你这句话不对啊,处理异步咱用的是a think away promise。
45:03
这玩意儿哪是处理预估,它只是能做完成一件事,什么事可以监听你服务器的数据已经回来了。你的微杠号结束了,代表你的结构都已经有了。再去执行,这并不是说他解不解决异步,因为解决异步的方案不是promise a think a bit嘛。这样懂不?而它是可以干什么,可以监听你页面当中如果出现了异步语句,就比如说你看咱这个这个这条数据是不是就是异步语句。对,不可以监听到这些异步语句的数据都已经为刚号遍历完了,也就是说结构都已经有了,我再执行这个回调,这个能不能。这个能不能懂,能懂吗。好嘞。
我来说两句