00:00
好嘞,各位,上一小节我们讲的这个watch监视ref数据点不点VALUE6的这个问题呢,我给大家放在这儿了啊,零九这个里面,那回到笔记里,在这小节我能给大家讲一个VIEW3里面的新东西啊,叫做watch effect函数,Effect这个词呢,直译过来啊,有作用反应的意思啊,说老师呢,翻译过来就是监视作用啊,或者是监视反应这东西有什么用啊,来咱代码上见啊,还是打开刚才写的这个,然后呢,我微调一下啊各位,毕竟这个person吧,是一个对象类型的,所以说我还是规规矩矩的啊,用这个reactive去定义它啊,然后呢,给大家留下一个watch啊,留下一个这块也删掉,写好了一个注释叫做监视啊,来重温一下啊各位,监视的第一个参数是监视的是谁,第二个参数是监视的毁调,那么第三个参数我没有写,在这补上就是监视的配置,如果你什么也不写呀,就相当于你没有传第三个参数或者。
01:00
跟你传一个空对象是不啊,那在这刷新一波,只有这个东西变它才能监测到,那如果我写一个imme,咱之前也见过了是不是,哎,Me来一个OK,那就是一上来就帮你监视一下是吧?各位好了,我把一个完整的watch的配置写完了,那接下来呢,请你对比一下我要讲的这个watch effect,那么接下来的第一步就得是引入这个watch,嗯,那它呢,也是一个函数啊,来写在这也能做监视,但是他最大的特点各位就是他不说他监视谁。说老师你看你这话说的啊,你给我讲了这东西说做监视啊,然后呢,你不告诉我说他监视谁,那这他怎么监视呢?那无非是两个极端呗,对吧,同学,你比如说你有100个数据啊,如果用watch,你能明确的说我监测这100个里的谁谁谁,那watch effect不给你这机会,他不让你明确的指明说我要监视谁,无非两个极端,第一个极端咋的全都监视。
02:06
是吧,说你有100个我都监视,那么第二个极端就是我一个也不监视,但是这种情况几乎不可能,同学你说整出来1WATCHUCH啊,告诉你能监视,完了不让你配置监视谁,最后告诉你谁也不监视,那不有病吗?是不?各位说老师那就是这个极端喽,哎,也不能这么说啊,来咱先写着啊各位走它呢,不再传递这参数了,说监视谁啊,它的特点就是哎,上来就写回调,上来就写回调,而且同学我跟你讲,回调里面还没有什么new value o value6,没这玩意儿,为啥呢?我监视的是谁,我都不知道,我怎么给你new value6o value6啊,啊说老师那这玩意儿怎么办呢?来咱先测试一下conslo,输出一句话啊,叫做watch effect所指定的回调啊,执行了。哎,我也不说我建议是谁,反正看看就这么写,什么效果啊,回到这刷新一波呀,同学你看一上来是不是就执行一次,哎,就有种感觉,各位这个watch effect好像默认开启了immediate车是吧,各位。
03:12
啊,说老师行,那这我服了哈,哎,一上来就开启这个了,那接下来呢,他监视谁呢?啊说老师我试试啊,我让核变也不监视信息变姓名年龄薪资,诶老师我都变了,这东西怎么依然按兵不动呢?他谁也不监视啊,哎,同学直接告诉大家答案,这个watch effect它很智能,智能在哪呢?它会看看这个绿色的函数里面,你用到了谁,你用到了谁,他就监视谁。什么叫用呢?来,各位走着啊,我在这里边啊,我cost一个X1让它的值啊,是这个sum,当然不能这么写,Ref的类型吗?想读出真正的值,您不得点Y流吗?同学,你说我用没用,哥们,这还不叫用啊,我拿到它的值付给一个新的变量,这还不叫用,这叫用。
04:10
啊,你用谁了,我用sum了,你既然用了sum,诶回头你就会发现啊,各位看着啊,这个sum变化的时候,诶诶诶诶你看他就有反馈说老师那这些东西怎么没有监测到呢?因为你没用,诶测试一下,各位走着我想用一下谁呢?Person里边的这个工作里边的这个这一里边的这个谁呀salary哎我都说了,它很智能啊各位智能到什么程度呢?能够分别多层的对象。哎,看效果啊各位来回到这边刷新。核变,这肯定能监测到,对吧?各位,哎,那你说人的名字变呢,他按兵不动,为什么?因为里边没有用到名字,那同理人的年龄如果变,他也按兵不动,但是人的薪资一旦要是动了,哎,看这儿走怎么样,各位是不是马上就有反馈了,哎,所以说你感觉感觉同学这就是watch effect,我不说我监视谁,你用谁我就监视谁,是不是这意思啊,所以说它很智能嘛,啊说老师这玩意儿有啥用啊,同学用途有着呢,你就比如说各位啊,我在这里面就可以畅快的写我的代码,你比如说我写了一个很复杂的业务逻辑,发票报销的呀,哎等等审核的呀,这些逻辑您就畅快的写,只要您里边用到的数据发生了变化,那么这一整套流程都会重新走,同学,是不是挺好的?哎,省着你自己一遍一遍的写呀,你比如说萨变了我走这逻辑啊,那如果人的薪资变了,我再走。
05:48
这逻辑是不是?当然我知道你可以把这逻辑封装成一个函数,对不对?那您不得这么写吗?各位来watch,哎,说我监视,就拿这个来说,你首先得告诉人家,我监视的是sum,如果真的发生变化了,那就是q we这个函数,你帮我调,那你还得再写这个是不是person点什么job这个东西,而且还不能直接这么写,咱之前还说了,你这些怎么写呢?来撤回来,你得把这些东西啊剪切走得这么写,箭头完再这么写,同学,你是不是挺麻烦的,你看这个变了,这个变了都走q we这个逻辑,不用一遍一遍写了,直接一个watch effect您就用吧,用啥,诶什么变了他就直接走这个逻辑是不?各位OK,那回头我们总结一波各位watch的套路是。
06:34
既要指明监视的属性,也要指明监视的回调,对吧?你得告诉我你监视谁,你得告诉我这个东西变了之后,我执行哪个回调,哎,这是watch的套路,那么watch effect的套路就是不用指明监视哪个属性,监视的回调中用到哪个属性,那就是监视哪个属性或者哪些属性啊,来同学看这啊,这是比较有亮点的东西,是值得你跟面试官聊一聊的,就是watch effect有点像comp。
07:05
同学你你琢磨琢磨,Computed是不是叫做计算属性,在VIEW2里,当然VIEW3里呢人不叫计算属性了,叫什么叫computed函数?同学我问一下,咱就说这comp,就说这东西里边用到谁first name里边用到了谁last name,那就意味着这东西变,这东西变,那么整个这个comp的这些是不是都得重新执行一下呀?哎,咱之前就说过,Comp的这个所配置的这个回调什么时候执行,初始化的时候执行一次,然后是什么呢?我们之前总结在比如二里同学叫啥来着,所依赖的数据发生变化的时候,是不是你看体现出依赖两个字,那我在这儿觉不觉得也有点套路,你告诉我watch effect所指定的回调什么时候执行啊?这个回调里面所依赖的数据啊,或者像我们刚才所说所用到的数据发生变化的时候,然后呢,我帮你重新执行一次,哎,所以说同学跟这个computed有点像,但是有区别来读这但computed更注重的是计算出来的值。
08:09
也就是说computer的那个回调函数的返回值那是非常有用的,必须得写啊,不信回头你看看,来回到这儿,你看你这是一个计算属性吧,或者叫做计算函数吧,有没有返回值,有,这有没有返回值有,也就是说同学计算,计算靠的就是那个啥返回值,要的就是那个啥返值。但是watch effect有一种感觉就是我更注重过程。是不,我不用写返回值,我要的是过程,只要你这个变了,或者这个变了,我就重新走逻辑,我要的是逻辑,哎,能把这些东西说出来,同学这就挺好的是不?哎,不要背书,说出自己的这个理解,OK,这就是watch effect啊,一般来说呢,在这儿可能走一些比如说报销的流程啊,哎,或者走一些这个什么发送到加请,呃,价值请求的这些东西是吧?好,各位,那这一小节呢,我们听。
我来说两句