00:00
好嘞,各位,那在这一小节呢,解答一个大家可能会产生的疑惑啊,就是我用watch去监视这种由ref所定义的数据的时候,到底点不点Y6来各位把我之前写的这些啊全都删掉,这些代码呢,已经在这儿了啊各位这08S RC watch函数来,刚才啊我写过这么一段代码,我说同学们这个person呢,我可以用ref去定义来我们先看效果啊各位,目前所有的数据我都是拿ref定义的,无论是基本类型啊,还是这种对象类型,而且我们心里明白这种对象类型里面其实它求助了reactive是不是?哎,生成了一个咱们那个什么代理对象,就是pro那个东西是不是好同学我们验证一下啊,先不说坚不坚实,这问题首先看看功能能不能实现啊,回到这边刷新。求和变,哎,信息也变啊,修改姓名好用,年龄增长可以,掌心也行,OK,功能是可用的。回来我们接下来分别输出这三个东西啊,Some,还有谁呢?Message啊,当然还有这个人就是person,我们观察一下输出的这三个东西啊,它都是什么?回到这儿刷新一波同学是不是都是这种re Fi PL的实例对象啊,我们管这个是不是简称为ref对象?好各位,那么不同点就在这儿,前两个你点Y6之后,它直接就是基本类型的值,那这个呢,也是你好啊,但这个不是各位都知道,这里面它求助了reactive,然后变成了一个reactive所生成的这么一个代理对象是不?各位好,那接下来咱们就聊聊,比如说我想监视这个萨,那我得怎么写I watch对吧,监视谁呀萨?
01:56
问题来了,点不点value,在上一小节这儿我可是没有点VALUE6的是不?我是直接写的sum,然后我跟同学们说,哎,我说同学们啊,这块只要SUM1变呀,我就consolo走,叫做sum的值,然后呢,是变化了对吧?那在这呢,能收到一个new的value,还有一个old value,那把这两个呢,做一个输出啊,咱看一下能不能监视呢?同学啊,慢慢捋,我问你啊,我监视的是谁啊,Sum sum是谁定义的呀?Ref这种方式定义的数据是不是?哎,好嘞,保存回头看效果啊加走走走有没有效果,有说老师那我点个Y6呗,哎,按照你上一小节的讲法,它不是RF吗?哎,那我得点Y6啊,嗯,你就点个Y6,这时候啊,你再看效果刷新,首先他报错了,他报什么错误同学你得读啊,他说零,数字零。
02:56
这个资源我不能够去直接做监事。
03:01
为啥呢?同学你回到这儿看啊,你点没点VALUE6点了,你这一点不要紧,是不是把那个零真正的值给它取出来了呀,那同学你哪能直接监测一个零呢?你监测的东西同学得是一个真正保存数据的这么一个结构,明白不监测的是一个结构,所以说在这同学不要点Y6,点Y6之后,同学不但有警告,而且你看功能是无法实现的,对不?哎,也就是说ref所定义的这个基本数据类型,你像这零啊,你像这你好啊,加不加,点VALUE6不加,哎,加了之后功能实现不了,同学你体会体会,我要是这么监视,你告诉我监视的是啥,我监视的是这玩意儿,Ref I m PF完了这么一个什么东西,一个对象,它的实例对象对不对,这个对象里面任何一个属性的修改我都能监测得到,对不?各位,那你在这来一个cons。
04:01
都log输出谁这个sum,那你瞧吗?同学是不是这么一个对象,诶对的,那么这个对象里面任何一个属性的修改我是不是都能捕获到,诶包括这这这只要改了我是不是能捕获到,但是我们改这玩意儿吗?不改我们改啥?我们改的是里边的Y6是不?各位哎,给人家的是整个ref这个实例对象的结构,哎,也就是说在这儿不点Y6啊,那我们在聊另外一个问题,就是监视person的时候,诶我怎么还得点value呢?嗯,这说的详细一点啊各位,因为可能有同学呢会较这真,哎出去或许面试官也跟你较这真儿是不是?嗯,来各位写了1PERSON啊,但是我们心里明白啊,Person是拿啥定义的?哎,拿这ref定义的来,在这呢,还是new y6的Y6,然后在这呢,我再给你做一个输出缩紧调一下,这回呢,叫做person的值发生变化了,同学,我的本意是不是想监视person。
05:01
对不,你按照这个来说嘛,Sum是ref定义的,那啊我在这不点VALUE6是吧,啊直接写,那在这呢,它也是ref定义的啊,那根据老师讲的,不点value直接写,那你看一下效果啊,这回回来当你去动这个人的信息的时候啊,走走走三个我都动了,我问你各位为啥监测不到呢?那就还得从这根儿上说问题,同学,你监视的是谁?Person person是谁?Person是ref所生成的这么一个东西,Ref I PL,诶这么一个对象是不?哎,这个对象里面任何一个属性发生变化我都能捕获到,是不?哎,那我就给你输出一下这个person看看呗,回到这儿刷新一波,同学,他是谁啊?它是被ref所包裹的那个person,打开它里面什么属性变化我都能监测到,也包括谁这个value,但是同学,如果你接下来再往下研究,你就发现问题的所在了,这个value可不再是一个基本类型的数据了,它是一个对象,那么这个对象里面打开这儿是包含着这个18呀,什么job name什么的这些东西的,那也就意味着各位你什么时候把这个Y流给它彻底替换掉了,也就是说这个对象彻底被替换掉了啊,在内存里的地址发生了变化,那这个时候他才认为,哎哟喂,这个Y流咋的被动了,那我能不能监测到,能,但是如果说你不把它整。
06:39
整个替换掉,你只是改里边的a job吧,Name里边的子对象的第二层级对象里的值,同学我就问你红色箭头所指的这个process对象在内存中的地址发不发生变化,不发生,那么不发生人家就认为value流的值没有变化,所以说各位当你去改这个人的信息的时候,你发现纵使你这说了你监测的是person咋的它也不变?两种解决办法啊,在上一小节啊,我只是给大家说了一个解决办法,就是在这点VALUE6,同学我问一下你这一点Y6可不要紧,你这回监视的是啥呀?来说的详细一点,哥们儿,这回你监视的是refl那个实力对象里面呢?哪个属性啊?你说的很明白吗?点儿Y流属性,那我们自己心知肚明,各位这个Y流其实是咋生成的呀?Y流你都知。
07:39
知道它是一个pro实例对象,那就证明这个Y其实是借助了react那个函数生成的是不是?哎,那既然是reactive生成的这个value,那所以说同学我在这监视东西的时候,其实我监视的是什么?是一个reactive所定义的数据,对不对?各位你这监视的是什么?是一个实实在在ref所定义的数据,但我在这这么一写,各位意思就是我监视的是R那个reactive所定义的数据了,Reactive所定义的数据的特点就是它是深层次的是不是,而且自动开启了一个深度监视,所以说在这写个点Y6就能把问题解决,那你瞧吗?走走走是否?各位,哎,那其实还有第二种办法怎么的呢?各位这块啊嗨,我不点歪六。
08:31
啊同学,那你能不能想到怎么办啊,刚才是这么个情况啊,因为呢,Person来,你打开里面,它本质就是这么一个对象啊,然后呢,最主要这个对象不是reactive生成的,这个对象是ref生成的,这个里边的VALUE6才是reactive生成的,那刚才呢,就是因为这个value的值是一个地址值,是一个对象嘛,它没有变化,所以说人家监测的时候只能监测到一个浅层次的这个东西,那如果说我还想进一步的去判断这个prox实例对象里边的这些东西,你告诉我得怎么办,我不写点Y6同学知不知道怎么办,我把鼠标秒在这儿啊,如果你会的话,你刷一波弹幕,你说我得咋写问题也能解决,那就是告诉他咋的深度监视,哎,这会儿是有这么一个问题的啊,来,回到这儿刷新一波看效果啊,各位回到这儿观察一下我监测的是谁啊,一个ref所定义的数据。
09:32
也就是说同学这玩意儿,你真往控制台一输出,它给力啊,它真是这东西啊,你说对吧,但是我说咋的深度监视,那也就意味着这个哥们里边的Y流属性里的某一个属性,什么job呀,哎,什么name呀,发生变化,能不能监测,能因为我开启了深度监视吗?那回到这儿刷新。走走走,怎么样,各位是吧?哎,那不用这么写,那刚才那是怎么回事呢?最后啊,同学,最后再重温一遍我这么写啊哥们儿一句话,我监测的不再是ref所定义的数据了,而是ref里边求助reactive所定义的那个数据,对不对?各位哎,就把这个点不点Y6这个问题呢,就给它说明白了啊,反正还是本着之前那原则啊,各位你一定要冷静的思考问题,你监视的到底是ref定义的还是reactive定义的是不是?各位,哎,那这样,我这回啊,我把这value删掉,我这回把它这么写给大家留在这儿好不?哎,这一小节解答一下大家这个疑问,同学,我问一下这儿为啥不能点Y6,能回答吗?为啥不能点Y6?嘿,因为萨里存的是啥,是一个基本类型的值,那也就说你这么写,如果你点Y溜了,哥们啊,你在这点value溜了,我告诉你,相当于你写的就是零,那哪能这么写呢。
10:55
不是各位,哎,撤回来好,那这一小节呢,我们停。
我来说两句