00:01
好,那下面呢,我们后面要把它改造成VX的版本,那我们先得了解一下VX。看一下。首先有它是个什么东西呢?啊OK,哎,这是它get up的站点啊,下面这一个是它的在线文档,而且中文的好,这里面简单来说。啊VX首先它是肯定要是一个库对吧?啊,库是一个谁的是一个独立的库,跟re一样,不是啊跟react有直接关联吗?没有。它没有直接方,它是个独立的库,但是这就方说,但是啊,View X是什么呢?View的一个插件啊,它并没有遵循我们一般插件的命名方式,按说命名方式应该是view杠什么叉叉叉,那也就说杠什么view X。
01:05
他没有按这种方式命名啊,OK。这个要注意,那它用来干什么的了,这个库。对view应用中什么多个组件共享的状态进行什么集中式的管理。这里面强调一个集中式。也放在一起来管理啊,把所有更新的方法都写在一个位置。啊,当然这管理包含读和什么写,其实重点是写。啊,读也是必须的,因为你把那个数据搞弄过去以后,组件里面是不是肯定要读数据啊,啊第二要读。好来,这里面有一个概念叫状态制管理应用,我们view的应用就是一个状态自管理的应用,刚才啊,我之所以要先写,就是想对着这个效果我们来去看它,我们刚才不做了一个效果吗?就这个效果,就实际上实现了一个状态制管理,我们看一下这个图啊好,我们来看一下。
02:08
这里面有这么几个概念啊。State和action。好,这个是date是什么状态,那到底对应我们里面的什么东西呢?对date。我们data里面是不是有一个count数据啊,没问题吧,好没问题,这一个是什么。界面,界面是到底对我们这里面的什么东西,我们代表了什么东西呢。是不是就他呀。能不懂模板嘛,模板是不是用来显示数据的,模板是用来显示数据的,但是我们的界面显示是不是有时候要更新的,更新显示更新显示我。啊,大家说一个事情啊,我更新有两个方面,应该说一个叫初始化显示。
03:04
一个叫什么更新显示对不对,初始化显示,那也就是说我这个模板里面需要去读取什么状态。没问题吧,没问题,主要其实难点在于更新显示。对不,那更新前示的起始点在哪呢?就是我这个右上面P的时候有一个按钮。我不有个加号减的按钮吗?对吧,我现在点一下这个按钮,假设我点了一下加对吧,这个加干嘛去点了加啊更新状态,那更新状态是不是要调用一个函数,调用一个方法,哎,这一个action就是一个行为。它是一个函数,能懂吗?实际上就是更新状态的函数,我们当前有没有。有关。好几个了,这每一个四个里面都是更新状态的函数,对不对啊,那也就是说我们现在啊是。
04:10
也就是说我们更新显示的起始点是不是在我的这一个模板界面上面。我通过事件是不是触发调用某一个X函数,而X函数里面去更新随去state状态数据对不对?而状态数据的改变会引起谁的更新显示界面,它是不是这样一个数据流啊?这个能不能看出来,这是view已经做的啊,View就是这么做的啊,这里面有一个概念啊,叫单向数据流。啊,OK,是这么过来的。懂不懂啊,这是一个方向,并没有,是没有这个方向吧,没有啊。
05:01
好,这里面它还有一个有有一些说明,大家可以看一下,是date是驱动应用的数据源,也就date数据嘛。有界面的显示是不是都是根据state里面的数据显示的没问题,例如呢,以生命式的方式将state映射到视图上面,生命是这个怎么理解?生命的方式,你想想看,你要显示一个count,你怎么写的,看哪一个大括号来一个count。你想啊,你你就你就做了这样一个说明,数据是不是就出来了呀,这就声明是真正他是要去取要读的吧,你有亲自做吗?没有。这框架都帮你做好了。啊,整个流程的控制需要你管吗?不用。啊OK,好,下面X是响什么响应在view上面用用户输入导致状态变化,它实际上是N个,是不是更新状态方法呀,这个是S什么意思,多个,那要一个action是一个什么类型的数据什么类型。
06:12
函数action是函数,这个就跟我们的reduction不太一样,还记得reduction action是什么?对象是吧,是对象,我们dispatch分发的是不是分发的action对吧,但它这里面一个action代表一个行为对吧?啊OK,就这一个。是个函数啊,要搞清楚啊,这是在react,就是在view里面,就是这样一种模型。这个先要有一个理解好。这里面就要说多个组件共享状态的问题啊,这里面大家就以我们的todo为例想想我们的todo首先有APP组件头部head,接着有me me里面有item,底部有一个photo。
07:07
对吧,大家看一下我们的hand,我们的me,我们的是不是都同时要操作一个数据to。对不对,都要抄到同一个数据,叫to,那此时其实就有一个概念出来了。叫多组件,什么共享状态?啊,还有一个是啊,多个组件依赖于同一个状态,来自于不同视图的行为,需要变更同一个状态,这个能不能理解,尤其第二个。你想嘛,我这看的是不是去添加数据,我这个foot里面是不是有可能删除数据,对不,那就不操作同一个状态吗?能懂吧,我们以前啊的做法是什么。我们前面是不是把共享的状态放到组件里面,其实我们已经在做集中式的管理。
08:08
对吧,我们已经在做我们自己定义的一个集中式管理,这个对于简单应用是可以做到的。听懂吧,但是负载应用就非常费劲了,因为你想想负载应用是不是很多路由啊啊,那个时候想去用我们这种方式去集中管理就很费劲了。啊,OK。Vivox就是基于这样一种目的来产生的。好,这里边我说了,我们以前的解决就将数据了,以及操作数据的行为都定义在什么副组件,接着将数据以及操作数据的行为传递给什么,各个子主页是不是去操作的,以前就是这样一种做法,这个对于简单应用一点问题都没有,但是对于复杂的打型应用,那这个没法做啊,就很费劲。
09:00
之所以因为它费劲了以后,我们才产生,才会去有人去设计略X。啊,不过这个VS不是凭空产生的,其实是参照redux。优化以后,简化以后产生的一个库。就借鉴他的思想,这个思想很重要,其实大家要知道,有时候要设计一个东西出来。B、最最关键的并不是写代码,写实现,知道吧,就一种想法,其实最重要的那个想法如果特别好的话,你的实现用起来就特别舒服啊。好,这是说关于他的一个基本的一个理解啊。
我来说两句