00:00
课,我们来讨论一下purpose的一些细节,首先看一看内饰组件,哎,它的这个构造器与purpose。这里啊,我把代码复制了一份啊,做了一些精简来精简后的内容,我们来看一下啊。哎,经典方内容只有这些,那我们来看一下我们的这个组件是不是没有用这个构造函数,之前我们在学这个state的时候,哎,这里我们用了这个勾函数,并且传了purposeose,对吧?而且我们那时候在学这个时候说,哎,这个我们先跳过,后面我们学这个purpose的时候再说这块,那今天我们就学到了purpose,我们来说一下这个构造函数与purpose。Construct啊来按照手册上的这个说法,我们这里要传一个purpose,并且要把这个purpose传给super,对不对啊嗯,那我们之前这个组件啊,是没有写这个构函数,我们没有什么影响,对吧,正常的运行,而我们在学这个词的时候传了这个。
01:01
啊,Purpose并且去啊使用了这个构函数对吧,传到这个purposeose,那我们究竟什么时候用这个purpose,哎什么时候不用,我们不用的话有没有什么影响,我们来看一下手册在。找到这个react啊,在这个API里面这里面,然后往下找,可以找到这个CTRL构造函数,来我们看一下手册这个说明,通常。哎,在中构造函数仅用于以下两种情况,第一是为了给这个state赋值,对吧,初始化内部的state,第二就是为了给事件啊处理函数绑定这个实例。是不是之前,哎,这两个我们也都尝试过啊,在学习这个的时候啊,给大家说过啊,我们在这个里面构造函数里面给这个S进行赋值,是不是。在学这个组件中啊,我们自定义这个方法的时候啊,我们可以给它绑定这个例子啊,我们来看一下之前的这个代码。诶,在这个里面。
02:02
哎,是不是,哎,我们通过这个band去改变这个this的指向这两个地方啊,也就是手册上说的我们这两处来通过这个this对象来初始化内部的state,哎,第二个就是为事件处理函数绑定实例,好,但是我们通过这个优化代码已经可以在这个类的。里面直接去用赋值的方式去设置这个啊,然后并且可以把这个方法看我们的简写方式,哎,并且可以把这个方法使用这个赋值语句加箭头函数来解决这个类似实样的问题,哎,我们已经。说实话,可以不用这个勾导函数了,对不对,因为它主要就做这两件事,而这两件事我们已经有方案去解决了。对吧,好,这点先说一下啊,那接下来我们来讨论讨论,哎,这个构造函数。这个purpose它的这个一个问题,哎,我们到底传不传。因为哎构造函数哎都可以已经不写了,写对都行了,那么我们讨论的问题主要是如果我们写了这个构造函数,哎,那这个purpose传不传啊,现在我们是传的一个情况,那肯定是,哎官方手册也这么写的,那肯定没问题,对吧,我们来运行一下啊,一切正常。
03:16
对不对,来把调试打开,那如果我不传呢,好来绍兴。可以看到是不是也是正常的,也是在这里我们去用这个purpose的时候,一样是可以取到的,对不对啊,那如果我只是把它给诶传给了构造方法,但是我不传给super呢?来我们来说一下。是不是一样的对吧,所以这个propose也是传和不传都可以,但是如果我们不传可能会出现一个什么问题,我们来看一下这个手册的一个说法啊啊。就这句话就说在这个组件它挂载之前,它会先调用构造函数。对吧,然后再调用这个构造函数的时候,哎,为这个它的这个,因为我们继承的这个类是不是好,为它的这个子类,也就是我们自己定义的那个类,实现这个构造函数的时候。
04:08
呃,应在其他语句之前调用这个so,哎,这个是之前给大家提过啊,就是我们这个so一定要在这个前面啊去调用清楚了吗?那我们之前说我们其他的一些比如说状态这些设置都在这个后面进行的,对不对,哎,这个super放在之前调用,哎,这个说的是。问题啊,接着看啊,否则什么否则this purpose在构造函数时可能出现未定义的一个bug,对吧?而且这里说了在其他语句调用super,并且传了这个purpose,不然的话你不传这个purpose,你在这个构造函数中,你去使用这个purpose就会出问题。那这个例子怎么回事?我来给大家演示一下啊,也就是说,哎,我们这里没有传这个purpose,但是啊,我们在这里却从这个实力身上去获取到这个。这个purpose。这时候我们来看一下啊。
05:00
哎,是不是按底方的啊,就是他说的那个bug啊,也就是我们在呃,写其他代码之前应该先调用这个。并且把purpose传递过去对不对,那你这里传这里肯定得放到多少方法里面传过来是吧?哎,这时候我们再刷新。可以拿到对不对啊。这就是官网说的那个问题,也就是说我们在这个构造方法里面,如果从this实例啊,Person的这个实例里面去获取purpose的话,如果我们没有去接收这个参数,并且传给super的话啊,我们是拿不到的,那就算我们接收了,我们如果不传给这个super的话,我们也拿不到,我们来看一下。是不是啊,你必须得把这个super,就是把这个purpose传给这个,让这个的这个类去帮我们去初始化这个purpose,我们在才可以通过实例去拿到。清楚了吗?啊啊。那接下来。我们来写一下这个注释啊,就是说在什么情况下我们要传这个purpose。
06:04
来,在这里写啊。构造器中是否传入?啊。中是否传入?Purpose啊,取决于,取决于什么呢?你是否在这个构造器中啊,通过this。获取purpose对吧,如果你非要在构造器里面,你去通过this次去获取purpose,那你这个purpose一定要传,而且一定要传递给这个super,不然你拿不到,就是说安迪范的。大家了解一下就可以了,在我们真正的开发中,哎,基本上你是写不到这个构造器的,你有什么需求,你要非要在这个构造器里面,你去用到这个this purpose。啊。啊。
07:00
那这个就是给大家写一写啊,基本用不到啊,基本用不到构造器。哎,因为构造器唯一的两个主要的作用,一个是哎初始化这个set,一个是我们为这个事件函数绑定实例,这个两个我们都可以在类里面直接去写。是吧,所以这个构造器基本就用不到啊,了解一下就行啊。
我来说两句