00:00
好了各位,三大核心属性之一的state呢,我们就讲完了,这state呢,也是三大属性里边最难的一个,如果这儿呢,你都听懂了,那么恭喜你同学,最难啃的一块骨头呢,你已经拿下来了啊,那我们总结总结state吧,好吗?同学们来看看课件上的写法啊,他说呀,State是组件对象最重要的一个属性,它的值呢,必须是一个对象。说老师我就想写成一个数组不行,因为呀,这个set state呀,写的时候它要求你就得传一个对象,你写数组它没办法匹配了呀,对吧,反正人家这个设计呢,我觉得也挺合理的,你想啊,同学们,数组你得按顺序拿吧,那你以后可能就写this点,你得写出这种代码了,this.state完里边的第几个来着,还想啊,第四个放进去的啊,那所以你只得为三,哎,你这么写就多麻烦呀,哎,所以说k value,根据K去取出value,这是一个正常的行为。好,那再读第二句话说组件啊,被称为状态机,这咋理解呀,同学生活中就有一个状态机红绿灯。
01:09
你觉得呢,你看到红灯影响你的行为就是,哎,不走了,得等一等啊,为了安全绿灯正常通行,组件也是一个状态机。老师这怎么理解呢?那你觉没觉得组件里边维护着状态,状态里边存着数据,你在更新状态里的数据的时候,组件就能达到一次,诶重新渲染这种感觉,就比如说render,诶再帮你调一次,你再改,我再帮你调render对吗?哎,那所以说通过更新组件的状态来更新对应页面的显示,然后呢,他说重新渲染组件什么意思呀,你每一次调用软底其实都在渲染组件,那你频繁的修改状态,它就频繁的render,那你的组件是吧,就频繁的哎,重新渲染渲染渲染好的,那这就是对它的理解好了,看看它这里边的强烈注意吧,来找个同学组件中render方法中的this为组件实例对象,组件自定义的方法中,你比如说刚才我给你举例子的。
02:10
Change whether demo1demo2那些它的this都是and find的啊,那这呢,咱还得多说一句,如果你作为事件的回调去使用,对吧,那它肯定是安de find,那换句话来说,同学。它不作为事件的回调使用,它还能作为啥使用呢?啊同学我问一下你在你自己的啊,类似组件里边,你定义的一个方法叫哈哈,哎,React就跟你这么熟啊,他帮你用完这个实力之后实力点,哈哈他帮你调啊,不可能的,对吗?所以说肯定是and find如何解决呢?两种形式,一在构造器里边强制绑定this通过B,第二个呢,那就是用箭头函数这种形式,但是你要写箭头函数,你就必须得写成赋值语句加箭头函数那种形式,因为类里边不支持这种写法,哪种写法呢?同学你看着啊,来,就是这个啊,你折叠起来为给它关掉。
03:02
咱说一下啊,你比如说同学,我这刚才是不是有个汽车这个类啊,你比如说汽车,呃,你比如说汽车能干嘛呢?能这个开车是吧?啊那比如说用这个around吧,就代表汽车呢,能够,呃前进啊,能够后退啊,能够跑起来,同学你说我就这么写。这个wrong方法放在哪了呀?原型上那本质它是个函数吧,对吗?往原型上放的时候,它放的是什么类型的函数呢?它放的是一个普通函数,说老师有没有一种语法,就是哎,让我把这个东西往圆形上放的时候,放成箭头函数没有。没有是吧,哎,那所以说呢,嗯,你得写成哎这种等于完了是一个,诶箭头函数,那所以说你这么一写不要紧,是不是放在实力自身了,那等你以后去调用这个wrong的时候,同学,那你是不是this点,然后你去调用它,那你调的时候同学由于它是箭头函数,还没有自己的this,行了,那就不说了,跟刚才都是一样的,对不对,嗯,好了,那这会儿呢,给它删掉,哎,那再往下看说状态数据不能直接修改,或者说直接更新。
04:05
对吧,你this.state点什么直接赋值,那肯定是不行的,必须要借助一个人,就是set state来。在这,嗯,好了,我们总结了一下这个state OK,好了,那么这一小节呢,我们停一下。
我来说两句