00:00
哎啊,这还有两个啊,一个是山东ref与ref,还有一个就是is ref这些了,呃,咱们现在呢,先把这个shadow ref和ref,把这个自定义的函数呢写出来,咱们来看看啊,那也是属于一个浅的一个深的啊。浅结石深结石啊,反过来的是if对象,好,那在这呢,我们来啊。定义一个shall。Lo ref shadow ref,还有一个定义,一个ref函数。这个也是函数啊,好,咱们先写浅的啊,再写深的。WRF括号,那它也需要给我们传递数据吧?但是呢,注意这个和咱们之前的呃,Read only啊,还有这个啊是不一样的,它返回来的是一个对象,之前的还有这个only的这种方式啊,返回来的应该都是代理对象pro类型的,那咱们这里边直接返回对象,那我就直接给他来一个return对象呗,这不就可以了吗?但是我们要清楚啊,将来我们在外部应该是这个样子的。
01:11
比如说有个RF1等于shall ref。如果说我要是往里边传一个对象的话,哎,那将来我们在外边儿去访问里边的数据的时候,应该是什么呀?点value的形式对不对,如果呢,我要是来一个can。点log,那这个时候呢,返回来的IEF对象应该点value的方式才可以得到这里面数据。那么如果说我要是设置数据应该是ref.Y6的方式等于这么一个值对不对,所以说啊,Ref对象里边操作的是Y6属性,那我如何让他去操作Y6属性呢?哎,这里边这么做,首先呢,我先把这个啊他给他。TT,他给的数据保存起来,然后怎么做呢?怎么保存呢?我来一个杠value TT。
02:00
好,但是我们想啊,如果是点Y6的方式就可以得到传入进来的这个数据,并且是一个ref类型的对象,对吧?Ref是ref的类型的对象,点Y6的方式可以访问传进来的这个数据,那我怎么去写这个代码,可以让他去点Y6的方式去访问这个数据呢?哎,这里边我们可以去写get和set的方式,Get value括号。再来一个什么呢?Set,诶,Value,再来一个括号,这样呢,外边就可以通过当前这个对象点value的形式去访问里边的数据,或者是呃,设置里边的数据,好,那如果要是进入到get里边来了,那我就给他来一句话呗。嗯,怎么写呢?那就写上劫持到了读取数据,并且我应该把数据给它返回去,那应该就是return this,点下划线的value,因为value里边存的就是他给的数据吧,好,这样呢就搞定了,那如果要设置呢,肯定应该是接收一个新的数据,那我就再写上一句话,cancel.log,这个我们就写劫持到了什么呢?设置或者说修改数据,诶,修改数据啊。
03:10
啊,并且呢,是什么呢啊,等待更新界面。我说准备啊,更新更更更更更新更更新界面,好把这值可以显示出来啊,当然了,这个位置的话怎么去设置值呢?那就是Z4点下线的value等于当前的VL,这不就搞定了吗?这个就是一个shadow if的函数,它的定义啊好,那这块这个代码咱们刚才写的是伪代码,暂且删掉,那如果要是定义一个ref的函数呢?啊,应该说跟上边几乎是一样的。把它复制过来就可以了。改个名字这儿呢就是ref了,但是又有不一样的地方,我们说如果将来我要是往ref里边传入一个对象的话,那这个对象它是要通过re的方式去呃处理的,对不对?那这个问题该怎么解决呢?哎,这块呢其实也好办啊,咱们只需要在这个这个位置做这么一件事情,它给它等于reive的方式。
04:08
React的方式往里边传入这个target,给这样呢,传进来的数据通过函数进行处理,然后呢,把每一层的这个对象该做什么代理,该做什么样代理就做什么样的代理啊处理好,那当然了啊,这个relative的话,咱们在上面是已经写过的,好,那这块呢,咱们就搞定了,下边几乎都不用变。那函数既然写完了呢,我们再去测试一下。好,那我就把这个代码拿过来啊,复制一份。放到这来吧,那我这个car呢,就变成。对象吧,我就给他一个color的啊,来一个红色好,当然这个应该是ref的方式,REF1吧,这个就是al lo lowf。Shall ref好搞定啊,那如果说我要是读取数据了,假设啊,我们来看一下ref一点Y6,我们看看能不能读取出来里边的数据啊,保存一下。
05:00
然后在这边呢,我们就直接刷新一下,大家看一下,结识到了读取数据说明通过Y流的方式去访问是没有问题的,好,那下一个吧,咱们再来看看。那我现在要去改数据是吧,Shadow ref的方式肯定是浅的劫持,所以说我用ref一点啊,VALUE6V lue等于啊这么一个值的话,我们来看一下能不能接收到。刷新诶截止到了修改数据准备更新界面,哎这是没有问题的,好,那我把这个呢注掉。我这么做ref一点Y6里边的卡,然后呢,等于嗯,等等我们再来看一下啊。我再去刷新,大家看一下,劫释到了读取数据,它能不能截释到了,修改数据呢?截释不到啊,因为这是什么呢?Shall if是浅的劫持,所以说深层次的数据要想发生变化,它是截释不到的啊,这一个它可以解释到。然后这一个呢,它是劫持不到的啊,劫持不到修改好。那现在呢,我把这个注掉啊,咱们再来看,我把这个代码呢,还是复制一份。
06:04
这个呢,我用REF2这个位置换成ref的方式,现在呢,我们再来看conso.log括号括号REF2点Y6,我们来看看啊,能不能结收到读取刷新,诶截释到了读取数据没有问题,好,那说明没有问题,那我就除掉,那么现在REF2点Y6我们去改一下值,再看一下啊。刷新我们看一下截止到了修改数据。是不是,哎,他能劫持到这个位置是可以劫持到的啊劫持到。修改数据没有问题,然后呢,再来看REF2点Y6点com等于。好,我们现在看看这个能不能解释到。刷新一下来看吧,劫持到了是吧,先届时读取,然后再届时修改好,这个也可以劫持到。啊好,那至此呢,咱们这个shall if和if这两个函数呢,自定义的方式呢,咱们也就说完了,主要啊,咱们还是做的是劫持,并没有做更新啊。
07:04
好,先放在这儿。
我来说两句