00:01
大家看一下啊,现在我们做的这个功能是蛮大的,我给大家演示一下问题啊,演示问题啊,看好了。先呢,我选择了测试,我先刷新一下,确保它最新的。我选择了测试,看看是这个样子的,就选中了角色管理和柱形图管理是吧,好。接着我选择经理。嗯。没有屏幕是吧。大家看到我选择经理还是这个。我选择角色一。一样,还是热。那真的是因为经理和角色一跟我这个测试角色是一样的吗?我们来看一下我先选的经历。是经理的吧,嗯。但是你后来就发现我点别的。
01:01
都一样。是吧?我们点击这某一项,我当前里面的状态是不是发生了改变。指定了一个新的肉啊,对不对,接着我去点击显示那个。来设置权限的界面的时候,我们是不是说让它显示出来。给他传了一个什么。是不是新的这个。那就有个问题了,我的这个肉性的是肉,为什么没有起到效果呢?而且你去看看一个东西啊,这个东西好像我的这是测试对吧。没问题,那这个呢,是经理这个在变是不是,但就是什么。是不是这个选中的这些角色没有变呢?为什么呢?就在于这样一个问题,看好了,回到我们这里来。我们说我们的是根据状态里面的那个肉,状态里面大家看到我们是根据它。
02:08
来确定是否选中谁对吧。而他是我们状态里面的一个值吧,是不是,而状老师是不是就在这里面,就在我们的哪个里面做了一下,里面做了一下。那我的状态还有什么时候会更新,是唯一更新的机会,就是我自己去选择呀。能听到不,你再一次显示的时候,它会根据新的肉来去。确定是我的状态值吗?不会啊。我只有在初始的时候,是不是才根据我的之后来确定这个值,这个地方就要说我们的这个组件,这个关掉我的组件死亡没有。应该是没有死。只是将它界面给他什么隐藏起来了,对不对,等到我显示的时候,它还会进入初始化的生命周期吗?
03:05
不会经历初始化生命周期对不对,那自然就用了以前的。有人说老师那个name为什么变了呢?他会重新渲染,没问题,他会重新扔的。但是我重新认了以后,是不是取到的是我传过来最新的这里面的内容来显示。但是我有根据。最新ror里面的那个mus显示吗?没有,我是根据我自己的状态来显示的,对不对,而你有根据状态,根据你传的这个来去更新状态吗。没有啊,你没有根据最新的肉传入来更新状态。是吧?那新的问题就来了,新的问题来了。我怎么知道他传出新的肉呢?
04:00
我现在有一个需求啊,就是要根据。嗯,新传入的来更新哪个状态啊,是不是check case状态。我怎么知道来了一个新的?属性呢?其实这个有一个生命周期方法,大家应该用过。其实这个方法是不是已经很长了?还不够。因为这个方法它什么时候要初始显示的时候不会掉。只有更新的时候才会掉。比较准确的名字,应该这么搞才比较好。就是组件将要接收到一个什么新的属性,那就第一次接收属性的时候,他会去调吗?不会。
05:08
能听到,不初始显示的过程中它是不会的。但他自然自然而然他这个方法。这个地方他会去接收啊,这个方法用过吗。没用过是吗?没用过我们就去文档里面可以看一看。是不是RA的生命react的文档嘛,文档里面我们因为它是RA组件的生命周期是吧,应该在component里面吧。那。这个地方它有一个。嗯。嗯,没有一个写一个对应的一个正确的一个位置。
06:00
总是写这些没用的。都在嗯,此生命之源之前啊,这个地方其实在说一个什么事啊,说一个原本的方法名叫这个,这就是我说的这个方法名,他说呃。这个名称呢,将一直延续到哪个版本呢?17的版本,而我们现在是。呃,我们现在是什么呢?其实最好是去看一下我们下载的版本,听懂不。嗯,OK,可以去打开看一下,我们应该还是一个。十六点八点六的版本听懂不?肯定没到17,能听懂不?啊,肯定没到17,那这个还是可以用的吧,当然如果到了最新的版本,是不是可以用这个了,类似的作用是一样的,听懂不?这里面会接收一个它的名字叫什么。Next pro。那这一个方法啊,这个方法。
07:01
什么时候它才会掉?什么时候才会,呃,才会去掉,就是当我接收到什么。新的属性。这不就是。但逐渐接收到新的属性是自动调用,而且是在水之前呢,是在render之前。听懂了吧?他说的是well well什么意思?将要接触到是吧,将要接触到,其实它肯定是在re之前去执行的。那我们这个地方这个是一个pro对象,这个pro对象里面应该有一个什么属性。我不传了个任务吗?听懂了吧,呃,这个肉啊,是不是就是最新的那个肉啊。最新的ZR里面是不是应该有个M?有吧?那接着你想啊,我去干个什么事啊?
08:06
嗯,这不是一个us吗?This店set。更新谁去?这不就跟你谈吗?能听到不?啊,当然你要不确定啊,大家要没用过,不确定的话,可以在这写一个打印输出。对吧,写一个like the pro那啊,为了证明这个关系,我这里面写一个render可以吧。可以啊,写个what form啊,写好,同样你就能看得到它的一个过程,当我们可以先看效果。看行不行是吧,先看效果来。看好啦。点他。
09:01
这个是测试的,就两个是吧,角色管理和柱形图,关掉它。再来。好了吗?是不是好了?这个能不能听懂。他为什么现在好了呢?这时候我们可以看一下。大家注意观察啊,注意观察。诶,开始我我要问大家一个问题,我的这个form组件有没有渲染。组建对象有没有创建?没有,你看这个打印输出这个不是啊,明显不是我们这么写的对不对。能看到吧,啊接着啊,看好一个,我们选中某一个是吧,这个不用看。是不是进了调用那个well receive了吗。
10:02
有调动他吗?没有嘛,我们刚刚说过了,初始显示是不会掉的,对不对,只在什么更新的时候才会掉是吧。其实这个时候啊,这个有个问题,你看他的这个关闭,它有更新了一下是不是。其实这个是有点挫的,说实话。其实这一个这个渲染这一去调window其实没有起到任何的意义啊,因为它都要隐藏了啊,后面我们会优化这个事啊,我们可以优化这个事。啊,先不用管它,好来接着再来看一下,走你。是不是调用卡。哎,我要做一个这子,我要做个这。把它先什么。改一下是吧。来了啊,来了,走你。那这个时候他是不是又要well receive?那此时我得到的就是什么?最新的我得的是经理的,看到了吗?
11:02
那么呢?What?好,还有一个事情,大家会发现一个事情。他本来是不是有一个更新的流程在走。他会因为我调3C的再多更新一次吗?有有这么做吗?我不叫下不是应该更新的吗?是不是它有多更新是吗?没有,他本来是这个过,这个流程是更新的一个流程之一,听懂不?这个更新的流程大家可以去看谁了。他生命周期。这个生命周期啊。现在怎么没图来,图是不是没加载出来呀?又有变化啦。前面不是一直在在这个在这个头部的吗。
12:03
这个。这不给我涂了,不给我涂了,我只能用自己的图了。呃,图啊,其实这里面呢,有一系列图,大家需要去画的图。这是那个原型链的图,这是那个JS异步机制,就是世界循环机制那个图。嗯,这个呢,是我们要学的re的图啊,这也是re,这个是viewx的,这是这也是VX的。这是view啊,它的一个实现机制的。这也是这个。这就是那个react的一个一个图。大家看一下前面是不是都是初始化的过程,后面后面这一部分,大家看到这个这一片。
13:01
都是什么呢?更新的过程这一片是什么?死亡卸载是吧?死亡卸载那大家看到我更新有可能是自身的状态发生了改变是吧,有可能是副组件重新什么渲染,或者是发生什么改变。诶,你看它。这个。不就过来了吗?这个方法是不是刚才重写这个方法。你们看到其实后面我还讲一个重点的方法,就这个。这不性能优化点吧,啊,这个也是后面要说的啊,一个东西,因为面试时经常问。后面是不是进人的。那如果我在这个里面去更新了一下状态,它不会因为你set我们不是调用了一些S吗。我们说列斯就会导致于我们的render进行调用,是不是?本来他是不是就进入重新论的流程了,你这一次调赛列斯的有导致他去执行两遍吗?
14:00
没有,他不会那么那么傻的。能听到不,它是不是相当于做了一个合,把那个把那状态跟原来状态是不是做了一个合并,也就是说我们调用的时候看到的是是最新的状态呀。我刚才不把状态值改了一下吗?我一旦我这里塞,其实我在这里的并没有导致他重新去window,因为它本来就进入了window的流程。这能听懂吧?当然,甚至你可以这么做。你可以甚至可以怎么做呢?写一个this.state点。它等于minus都行。因为我的目标是不是希望扔的时候能看到最新的状态值,我这样是不是改变了状态里面的数据,上面也是对不对,上面也是我们说过正常情况是不能这么做的吧,有的正常情况这么做,比如说我在一个世界毁掉事界做了这样事情,状态。
15:01
会显示到界面上去吗?不会,必须调水,但是我这里可以。因为我不是要产生一个新的更新,听懂不,我是在这个本来就在更新的什么这个流程上面。是不是只要我去改变了状态值,大家看到我现在这种方式也是可以的啊,其实这两个结果最终结果是一样。嗯,最终结果一样。啊,我选择经理啊,看到的是经理的样子,大家看经理是这个样子,好,这里面有首页啊,有角色柱形图等等。好,看一下那个测试有没有。一样吗?明显不一样。能听到吧。嗯,OK,当然啊,可能是上面这种写法好像看起来更加规范一点,但实际上你要知道本质,就会发现其实都一样。对于我们当前一样啊,但是你真正平常在更新装备的时候,能像下面这么写吗?
16:00
不能,平常我们在事件回流函数里面,就根据状态,绝对不能像下面这么写,只能算什么上面这样写。这能听懂吧,还有一个事情啊,还有一个事情。其实吧,我刚才我如果不做这个事情,我还有一个,还有一个异常。除了这个,还有一个效果的问题。我解,我做这个事呢,解决了两个问题,我们来看一下什么意思呢,我点击测试,接着我设置,我勾选一下首页啊,我不点OK,我得取消。能听到不?我也就是说我的首页开始没没有勾选的吧,我跟他勾通一下,我又取消了吧,那请问我现在是要勾还是不勾呢。还是不够吧,因为你根本没有保存嘛,是不是,但它现在什么勾了。还是问你他一个缓存的状态嘛,那状态还是用了以前的嘛,对不对,当然他自然就勾上了,但是我希望他勾吗?不希望啊,但是我把这个解开。
17:11
我们来看一下我们现在行不行,选中走你啊,现在没有选中吧,我选中一下可不可以,可以接着我补点OKOK,没什么事啊,点一下取消。取消油再点开。选择了吗?依然没有吧。这能看到吧。啊,当如果我勾上了,我点OK是吧,我再点。肯定要多上吧。这自然就构成了,是不是?再不上就不对了。这能听懂不?诶这样我们就能够去啊,对我们的这个权限进行设置了,那也就是说现在我们的权限的添加和修改这个啊角色的权限。
18:00
创建角色以及设置角色权限都可以都可以做了。好,还有一个小事情啊,刚才我们那个有一个小问题,我其实我给某一个设置权限。不是还要去指定授权的时间以及授权的人吗?大概授权时间它是自动产生的,不要我们自己指定。啊,我们更新的时候就有,关键就是授权人我指定的吗。没有吧,那个授权人我们得指定一下吧。那授权人这个地方有一个what的,好,应该是有个what name吧,我们来去看一下我们获取角色列表,大家我们来找一个比较靠前的啊,授权人有what name,而这个what name是谁呢?当前登录的什么用户?是不是那这样就比较简单了,其实什么一个意思呢?当我们去更新的时候。
19:04
这不更新角色吗?啊,我们除了指定M还有一个东西要指定。要等于谁?啊,是不是得等于我当前是不是有一个memory排不出来,还不出来memory。点什么?啊,User user name吧,好像是。Usually。这人打吧。好,那这个时候我们到时候是不是就能看到是谁给他授了权,是不是这能听懂不啊,那当然我们当前的应该就是我的什么。我的命,因为是我的命操作嘛,那我们找一个未授权的可以吧,比如说这个角色二,我要对他进行授权。啊。它自动是不是自动引入了,我们看一下。
20:02
他没报错,说明可以了。是吧,啊他。来看一下啊,看一下记得走礼,好,我们来试一下,给他随便搞一个首页,搞一个商品可以吧。好,接着点击OK有没有,诶这个时间它不自动的。是不说明我们时间我要我要指定一下是吧,那那简单啊,你要指实在不是他指定的,我定的也行啊。这都是小意思的事。就是点什么。不是,是what time对吧,等于一个当前date的什么。那不就当你时间吗?你们看到。嗯。哎,这个时间我们说过了,还要还要给它格式化的,是不还要给它格式化的,我们来去试一下啊,试一下这个。
21:01
看看行不行啊。给个首页就拉倒啊,别的也不给了,走,你有时间吗?有这个时间我们是不是一直说要格式化,没格式化是吧?我们是不是有专门做日期时间格式化的一个工具函数来引入一下啊,把这个写完就差不多了啊,Us下面的啊叫date优S啊,里面有一个叫。什么?是吧?他是不是接收一个时间值,最后返回一个字串格式的时间,对吧,那其实很好写。什么意思呢?我们回到我们这个一看好了,我们说过这个地方是不是有一个re的一个函数可以指定的是吧。能看到吧,他接收的啊,他要返回的时候要显示的数据吧,接收的是不是我这个的值。
22:08
那很简单了,那不就是来一个方面,接着来一个create time,你说是不是。那不就返回这个格式化以后它就串嘛。来看一下。这个是不是有了,这个还没做是不是。但是你没有发现问题,我觉得五字写的有点复杂。我觉得我可以直接写这个名字。哎,不用这个这个看好了什么意思啊,直接写format date就好了。就可以用了。可以吗?又不知道啦。这个问题咱说过的这个问题咱说过的,我的这个不是要指定一个函数吗?是不,而这个函数是不是接收我的这一个time的这个时间值返回一个结果。
23:09
我这个函数就是啊,你看你定一个函数,接着你又去调用那个函数,调另外一个函数,返回一个函数执行的结果,那何必呢,那不就指定函数得了。你不多定义了一层函数吗?我这个函数已经满足要求,你不就是要你不是要去接收,要定一个函数返回一个返回一个值吗?是吧,而且个值是不是根据这一个传的这个值进行计算呢。那你想啊,那你何必呢,那你不直接把这个函数交给他,他去调用就行了,因为都是回调函数。那我估计这个有同学还是理解不了。这东西你说多难吧,也不是,这其实是考虑它的,是一个基本的函数的一个理解。啊,我们来看一下,现在日期时间是可以化了。就这么简单的事,能看到吧,嗯,行。
24:03
好,那基本呢,我们的这个。角色相关的就搞好了。啊,其实这里面啊,这里面啊,会涉及到我们的后面要讲的一些问题。嗯,不过今天我们讲讲有涉及到component component,这个可能没讲过。皮卡收获吗?就这一个,这是一个,也是一个组件Q,什么意思呢,纯洁的。纯了是组件,还有纯不纯洁的问题,是不是啊,是有的。啊,这个面试主要是面试的时候容易问啊,面试容易问啊,还有一个就是data啊相关的。问的也挺多啊,我们现在呢,设的很多语法都用过了,我们要总结一下,并且给大家进行说明一下,我们前面是不是也说过它有异步的问题。我们说是不是异步执行的,但这句话完全对,有可能是同步执行的。
25:03
只是我们当时是亦不执行的。那也就是说有的情况下面是异步执行,有的情况下是什么呢?同步执行。啊,也包含最后最后啊,说完以后我们要去通过做面试题啊,来去检验你到底有没有学懂啊。啊。这个我就先放到这里啊,先放到这里,明天呢,我们再去讲它啊,再去讲它。好,行。
我来说两句