00:01
下面我们来去看它的第一个的实现,叫数据代理看一下。啊,我们先用来实现一下,就是用一下view库啊,那我这里面呢,需要去创建一个啊GS啊,引入那个u.GS那个库啊。他应该是有的。Fair是吧,就这个呗。甄姬呢?Yes,好,引入一下。叫JS下面的b.JS script1对吧,好,这里面我稍微写个D啊,写个ad上叫test。
01:03
下面一个view,传一个配置,传个E,传一个井号test啊对吧,好。看到我在这里面写一个date,写个他啊,这里面就写一个name吧。假设叫菲菲啊。好。来,下面说一个事啊,就要去说数据代理到底是一个什么样一回事,来看一下数据代理,它其实一个比较通用的技术,并不仅仅在view里面用,在别的地方也是可以用的,甚至于不同的语言都有。就生活中咱也有吧,就中介不就是一个代理嘛,是吧,好,他这里描述是通过一个对象来代理对什么另外一个对象的属性的操作,也就说我有两个,一个是A,一个是B,这两个对象,那现在我要去操作B的属性。
02:11
我要去操作B的属性,但我不直接操作B,而是通过谁来操作呢?通过A。其实一般情况下,A是在那个B呢,在A的内部。听懂吗?就是A里面包含的B,那我要操作B就挺麻烦的,譬如说A要操作要操我要操作B是a.B点叉叉叉对吧,那爱你的效果是什么?是A点什么叉叉叉。看似在操作A对吧,这编码的时候我是不是操作A啊,但本质呢,操作的是A里面的什么B,那你说谁代理谁呀。A代理什么B。啊,这这里面一个对象指的就是A,对不对,另外对象指的什么B。
03:05
那在view里面是一个什么样的情况呢?对吧。来我们来看一下是这样一回事,我这里面呢,用一个含量来存,应该命一个什么名字比较好,是不是VM呀。好,譬如说我现在就可以去输出BM点。而且我们已经知道结果了,应该什么,菲菲,对吧?那有没有想过这个地方我有自己可BM添加什么属性吗?我根本就没有。对不,我的这个属性是放在什么里面的。那同时呢,我们还去看一下啊VM。来,打开瞧一瞧。
04:02
首先结果得到了吧,说明是没有问题的对不对,好看一下我们在六这个U实力的时候,是不是传了一个对,看它这个地方有没有什么我们能够A这个。其实他把那个date是不是用一个下滑date这样一个属性来存起来了。也就是说,这个项目列的值是谁?这不就他吗?能懂不好,但同时它提供了一个什么name。提供了一个name属性,而这个name属性是不是后面加的呀,他加的。他为什么要加name呢?他是如何判断要加什么属性的呢?对,你这个data里面有什么我就加什么。而且吧,我加了以后,你看现在我还看不到值。
05:00
但它这里面有个提示。我前面好像跟大家提过的叫invoke property get什么意思?调用属性的什么get?也就是说它的这个属性本身存值了吗。没有他去拿取值,通过get去拿取值,你看我一点它就有了,是不是从date里面去取值。这能弄吧啊OK,也就是说这个类打开。这是什么?是不是有它的对应的get的方法和方法?Get的方法是不是用来去从data里面取数据方法?先是这个属性值的变化,那也就是说我们VM点内假设啊。嗯,就小小吧,大家想啊,那现在我改我写编码的时候,是不是改变的是VM里面对那个内对不对,但是我们前面说过VM纯内值方。
06:08
它不存,那数据去哪了呢?那我怎么验证它去data里面了呢?VM点下划线,Data点内。能不懂啊,OK,好,我们来看一下这个结果。是这样的吧,但是其实我们真正去取的时候,肯定不会这么取是吧,我们要取的时候肯定写什么。VM。点内嘛,是吧,啊OK好,其实现在用到的就是数据代理,只是代理两个操作呀,读和写,而上面这个代相当于VM带的什么代理对date数据的什么读操作对不对,而下面哎,这个时候此时内部也就是说我把数据看似保存在VM里面了。
07:14
对吧,但实际上跑到哪去了,Data里面去了,对不对啊,那也就是说此时为什代理这个data数据的什么写操作。能不能看到好,只是我们现在用的是view的库来实现的,对吧,那下面把这篇代码。复制拷贝。啊,大家看到,把这篇代表复制拷贝放在我们这个里面。放在这个里面,诶,多拷过点啊,把整个考位进来吧。整个都拷过来,拷过来之后我们这一次不要用了。我们是不是用我们前面说的用的那个库是吧。
08:01
来就是这一个,这个里面呢。有没有看到用的是这四个文件。啊,那这个时候来啊,我做一个小处理。我别直接放这里面,我建一个文件夹,假设啊,我就叫MVM,只能隔开一点。能看到吧,好,那我是不是要把这四个文件引入进来啊好,那这个不能引入了,JS下面的MVM下面的,来这个没有什么顺序啊,写一下。一共什么四个?嗯,把其他的先引入一下,这是一个。Watch什么意思,监视?我不知道我什么意思,观察其实也类似一件事是吧,到时候再说啊,看什么意思,编译就是解析模板的一个东西啊。
09:02
好,写它以后呢,这个代码基本上不用太改,唯一改的是它,因为我定的名字不叫view啊,叫的是MVVM。因为我们只是研究它的MVVM的实现嘛,所以我的构造函数其实就相当于view啊。能看到吧,我定义的名字完全我也可以定义成view的,也可以定义成view的啊,只是我要强调一下这样一个概念,MVM。好,不用弄了啊,不用弄了,稍微把这个数据稍微改一改。可以吧,免得跟上次一模一样好。看一下结果。哎呀,叔叔。改没有能读吧,谁能说第一次是不是能读,改了以后我是不是读到新的值没问题,接着看一下它。来它里面是不是我的VM上是不是也有内。
10:00
但本身我没有给它定义name吧,而且name有对应的什么get和set。它内部还肯定有一个叫什么下划线data塔,对应的是不是就是我定义的data。嗯,OK。就是我定义的这个data里面有个什么没有,这个后面再说啊,后面再说不用管它,嗯。能不能看到,那现在就好了,那也就是说现在我们已经能够看到啊,我们用这个库是可以已经实现了数据代理的效果,也是我们看到的结果。啊,结果现在是没有太大问题的。
我来说两句