00:00
啊,就是稍微写一写,呃,从这个mam开始啊,一点点写啊,这个引起从它开始吧,我不知道去观察是吧,观察里面是什么意思呢?啊嗯,你想看现在我们的这个数据必然是要四个对象是不是才行啊,就是被观察的。必须?什么是一个对象?其实我们并不观察对象本身观察的是什么。是不是对象里面的属性。对不?所以你如果不是个对象,那就没有观察的必要了。嗯。必须是啊好,下面创建一个对应的什么观察者吧,就每一个被观察的对象,是不是要有一个对应的什么观察者啊,就observe对象,创建对应的observe对象,好在我们这个对象里面干嘛去了,那要实现啊数据的劫持去了,首先保存谁啊,保存数据保存对对吧,保存对的对象好开启。
01:17
啊,开始啊或者启动吧,开启。开始开始吗?嗯,对。啊,Date的啊对,好,下面来work。来这个里面呢,这个这个你就不用写了吧,这里面保存谁是不是保存我在我对象啊,写小写的啊,我找我对一下啊好,下面便利date中所有属性对吧。啊,再一个就是对指定的属性进行解释,对指定的属性啊属性啊,其实这个方法有要不要都没关系的,你去三是调用它就可以了。
02:10
能看懂不就这个方法是过渡的方法,实际上你完全去调用它就可以,去调用它就可以,就说白了是这样。嗯,这个里面写的话,应该就就把它把它搞过来就行了。什么呀?呃,我有name k,我有吗?没有,怎么得到date?点K不行,是不是中高K啊。能看到吧,那这个就是什么。是不需要啦。能不能看到啊,OK,这一个这一个方法就有意义,有一定的意义了,主要这个单词有有意思叫响应式的。有没有啊,OK。
03:00
所实现响应式的保利。的数据。好,那如何实现呢?先创建一个对应的什么,创建属性对应的什么啊,属性对应的deep,好,现在我要说一下这个deep是由哪个单词来一个简写啊,它叫dependency。什么意思啊,依赖。啊,依赖什么意思呢?其实它这里面就保存的是啊这种依赖吧,主要是你要去体会啊,这个地盘里面关联的水。是不是关联的N个water?对不对,而我所对应的是不是表达式,而表达式是不是使用了我的某一个这个属性。
04:01
也就是说这是一种我我使用了它,譬如说A使用了B,相当于说A是不是依赖于B。那么懂啊,A依赖于B,而这个依赖就代表的是我们的表达式啊,在使用的是某一个属性嘛,或者某几个属性的这种依赖关系啊,OK,他取了这样一个名字叫DEP。这都是参照那个源码里面的写法来写的啊,源码里面就是这样的一个类似的名字。好,下面这一个是干嘛。通过间接的哎这么一个概念递归调用实现对。Date中所有层次属性的什么?数据解释。这怎么弄?
05:02
啊,也就是说开始最先变量的值是不是最外层的属性,但是内存属性是不是也要处理。啊,所以必须做啊,OK,好,下面。这个啊。给date重新定义属性。也就是说这个属性本身有没有有为什么要重新定义添加和什么get方法。对吧?而set get角色,它们的作用不太一样。Get的作用。首先get是返回当前值啊。这是它基本的作用,对不对,这是基本的能力返回值。那最最重要的能力,主要这个。
06:00
干嘛,这个是你要说的,你反馈值这个东西都不用说。大家都懂建立什么地与我之间的什么关系。而这关系是不是在我set的时候起作用啊,说白了,我要不整get,我关系没有建立,我的最终的效果能出来吗?不然。那也就是说这一个是不是建立关系系的,嗯,建立。能不懂啊,我这里就不强调哪个跟哪个了啊好,下面这set整体用来干嘛?既是date中属性的变化,那干嘛呢?啊啊K属性的变化啊,是不是最终最终的目的是干嘛啊,控制力步最终的最终是干嘛去,我们说一个整体的更新界面。
07:07
目标就更新界面,我们就说了一个目标啊,至于怎么做的,那就看里面怎么写的呗。对吧,好,前面这个都没有必要去什么注释了啊,没什么意思,这个新的值如果是Jack的话,要进行什么监视。对吧。啊OK,但如果不是了,那它这里有判断的,没关系,对不对?好重点在下面,这里面有个概念叫通知订阅者,其实那个订阅者指的是谁主。Water对,很好,就是一个一个的观察者water,而且是通知所有相关的什么订阅者,就是先去告诉地对吧,那地的方法里面啊,地的这个方法里面。
08:01
不就是去便利所有我对吧,啊便利所有什么watch。通知我一下什么更新呗,对吧,通知我去更新。好,上面的几个,这个是用来干嘛呢,写写。添加这个萨宝是什么?一个萨是一个什么。添加我到地中对吧,懂不懂就相当于建立地与谁的关系,我写的关系啊,好,那这一个这一个。啊,这个是真的是建立他俩之间关系的代码。能不能啊,OK,去接力啊。D有意思吗?Y之间的关系,好,这个好像暂时还没用啊,这个实际上是一个什么呢?移除啊移除咱暂时没用,先放着啊。
09:16
好来往下面看啊,下面我们要看的是这个里面啊,这个里面啊,这个这一个update,找谁去找那个那个文件。我吧找我,嗯,就这个好,我里面我们来看一下这个就是那个更新的方法吧,对不啊,更新的方法好,那这一个更新的方法啊,这个里面这是一个,我这一个是干嘛。更新什么的回答,更新界面的回答吧,能不懂这个没什么好说的,这个是什么表达式。啊,这个。Ju。
10:00
包含所有相关的地的容器对象是这意思,这个。得到当前的值啊,初始值吧,是保存了是表达式的初值吧,啊表达式的数值强调一下。啊,好。看这里面这一个更新里面到底做些什么呢?这个这个说起来没没什么太大意思啊,其实最最关键的在哪里。在这一行。是吧,在这一行来这一行在干什么,是不是就更进去调用回调函数。更新谁更新界面,那你说这个方啊,是由谁来导致调用的。应该下吧。对吧?而set是由谁导致的?
11:03
我们去this点叉叉叉的一个value吧,修改或者叫更新是不是属性数据啊,嗯,OK,好,这个里面他写了很多,我天呐给干掉。这个里面是在干什么?判断deep与我的关系是否什么已经建立,诶,这个要素通过这个判断就能起到这个效果吗?能不能?能,因为主重点在这句话。对吧,好,你先说假设不不写这个if,你建立关系是不是写的这句话,那一旦执行化这句话以后,我当前这个watch与deep。是不是相当已经建立关系了,那下一次如果同样一个我同样一个地进来,咱还要添加,还要操作吗?就没必要了,对不对啊,这里面就用到一个方法叫has own什么。
12:11
Property。啊,只有没有建立,我们是不是才建立关系这一个。相当于接近的是谁从哪到哪的关系。这个直接来说就是将what啊what添加到什么地中是吧。Let me know。那就相当于从地到什么我写的关系是吧?而下面呢?将谁添加到哪里面去?将deep添加到什么我写中。好,现在我要问一个问题啊,你说这个里面为什么不用数组呢?
13:00
这个也就是说建立这个关系,建立这个关系来就是为了一个目的,防止重复的建立关系。它现在的意义,大家看这一个这个容器的意义。在哪里,这个容器意义是不是就用来去识别我到底有没有建立关系啊,那也说这一个的意义,我添加他们的关系的意义在哪呢?也就是说,我往water里面添加deep是为了后面更新吧,大家想啊,我把water添加到deep里面去,那一个deep里面是不是关联很多water?最先收到通知的是不是地,而地去通知谁去,我想。这个是用于更新的。用于什么更新阶段对吧,用于更新,而这一个这个操作。用于什么识别啊,识别防止吧,防止什么啊,就是反复或者重复建立关系。
14:07
指关系建立一次是不是够了,嗯。单起来看啊,这两个的作用不太一样啊,OK。那有人说老师那个他这边,他这边为什么要用数组不用对象呢。是不用数字来说,是不是便利也方便点。也就是说,现在我有必要用对象吗?有没有必要大家想啊,我们现在容器就就在这里吧,这速度是不是在用?你需要什么先后顺序吗?也没有什么太多,这个不涉及什么相顺序啊,主要涉及到他们我需不需要通过它的标识去取那个某一个值,不需要,也就是说只有我需要通过标识去取那个值的时候,我才可能涉及到是不是用对象去存了。
15:01
我就一个便利。杨说,老师我用对象行不行行?没问题啊,用对象是没什么太大问题啊,一样可以便利,只是遍历稍微麻烦一点。啊,这是这一个大家搞清楚。好啊,这个这个里面呢,这个是我们前面整过的,是获取表达式的值啊,简单写一下啊,嗯,得到表达式对应的什么呢?值和这个啊这个。这个里面其实非常关键的啊。这个也是去取当前表达式的值,但是它会去涉及到一个建立关系的问题。你看它在这里面啊,这里面啊,说一下也是聚聚得表达式的值,但是啊,它的内部包含了什么呢?它会去建立啊地抛域我角的关系,那也就是说我调用这个会会做吗?不会。
16:10
这个不会,因为上面呢有一个非常重要的一句话。Deep target等于什么?This?给a deep指定当前的什么?也有也有指定了以后你看到啊,主要是在这里。默认值是什么?那默认值让大家想啊,我这个建立关系要执行这句话。那前面有一个什么。是不是有个条件。对吧,只有你指定的我小是不是才能建立关系,你要没有指定,我就建立不了关系。而且下面他做完以后,你看做完之后把第三步先做了是干嘛。
17:00
是不是相当于啊,我再一步再把这个写了,这个叫什么?获取表达式的值。内部会干嘛,内部会去调用get是不是建立关系啊,内部调用啊get啊建立关系,建立帝国与谁的关系,与我小的关系,对吧,懂不懂好关系建立完以后呢。是不是相当于把那个中的那个water又给了什么去掉?也就是说这个不去掉会有危险,不去掉会导致于它后面又去取的时候,是比如说我刚才说了这个取会去掉,会去建立关系吗。不会,那如果我不去掉了,那么一直都存在吗?认到不啊,关系已经建立好了以后,也就是说在关系建立好以后,我的这个water就没有必要再保存到地里面了吧。
18:05
能不能啊,去除。啊,地壳中啊,指定的什么当前我想这关系已经建立了,就没有必要再放进去了。OK,最终访问证明什么啊?好,那整个还有一个小位置,就是compare里面好像写过吧,我看一下啊,Compare里面啊,有一个water那个位置啊。东西还是挺多的,就这里啊,在这。前面我们是不是在编译我的模板初始化显示对吧?但同时你要为后面更新做准备吧?能不能啊,相当于这是为表达式创建一个对应的波角。
19:04
对吧,实现实现什么,是不是我这个表达式的更新显示啊,节点的更新显示,也就是他不指定了一个回调函数吗。对吧,这回量是什么时候掉当。表达式。对应包含了对应的啊,对应的一个啊属性,因为一个表达式里面是不是可能有多个任意一个属性啊,属性值变化时是不是调用毁掉对吧,或者调用好干嘛去,是不是更新节点界面中的。对应节点指定节点嘛,这不就是这个漏的吗,是这个节点。
20:02
而这个我在这里面有一个统一的称谓啊,叫什么。讲这个。是不是叫订月子啊,OK?看,而这个订阅者里面是不是订阅了这个地方啊,订阅了数,大家看到这句话叫订阅数据变化绑定到更新函数是个什么概念,首先这个我啊是不是用来去监视了数据的变化。对吧,一旦数据变了,他干嘛去。是不是更新视图?看到了吗?更新视图也就是我的,我里面是包含了一个回调函数。回来还说你干嘛去更新节点嘛,不就更新节点update更新界面吗?Okay。整个大概就是这样一个情况啊,下午我们把这个图啊画一下,这个图呢是大家必须得画的。
21:03
一旦问问到这个相关的,没有相关的有可能都画图。想方设法,你待会画一下。OK,但画的时候啊,一定要是你要画的比较熟练啊,画的比较熟练在后面还有一个简单的,这个比较简单,这个没什么,这很容易就能搞定。
我来说两句