00:00
好,下面呢,我们进入下一个阶段的学习,就是学一下啊一个库叫。啊,资料呢,已经发给大家了啊第一个部分呢,是。扣啊,相关的这些代码,相关的第二个呢,是我们用到的一些,嗯,一些库的一些包,然后再说啊,这个呢是课件。大家打开课件的时候,尽量把那个导航给打开啊。你要不会百度?好,我们要学的东西呢,叫RA全家桶,有时候也叫RA技术站。其实是一个什么概念,首先要知道啊,首先大家应该能知道它是一个GS库是吧,那为什么又出来这样一个概念呢?其实这两个是等同的。一个概念。其实这个里面就包含了react以及相关的一些插件,譬如说我们要会去学root。
01:02
啊,UI还有Rex等等。啊,这些呢,都是需要去学的,你光写一个react是不行的啊行。那我们就从第一章开始啊,从第一章开始。好,我们先来看第一个就是关于的基本认识有一个了解啊,这里面呢,它有一个官网,这里有中文的官网和英文的,那肯定要看它了。不用想是吧。啊,大家其实也不用复制地址啊,这里面都有,就这OK。呃,中国的官网呢,反应快一点。啊,通过他的这个主页,我们就来看一下它到底是个什么东西,其实这个上面的就有介绍,就这一个是吧。它是个什么?用于构建用户界面的一个JS库,那JS库咱以前学过什么?
02:03
对吧。那这carry呢,我们称它为一个函数库啊,为什么称它为函数库呢?它其实就里面很多方法,里面很多函数。来包装什么呀,是不是多么操作。能不懂,但是你你一旦学上react以后,你就发现我们基本上不要再进行DOM操作了。动操作是觉得说实话动物的API挺费劲。好。那这个地方它主要说了一个它的作用啊,构建用户界面,什么叫构建用户界面。说白了就是把数据给他什么展现出来。Ah okay。好,下面。大家知道是谁出的吗?啊,Facebook其实大家也没见过,只听说过啊,见也见不着啊,你要翻个墙还可以是吧?大家有翻墙工具吗?没有没有,要找我要啊,到手就发啊,不着急,不用要啊,直接发啊,OK。
03:26
现在基本上是市面上最流行的前的。好,下面要说的东西,这些东西是什么呀?是不是在说它的特点呢?那它有这么三个特点,我们来看一下,第一个叫什么呢?生命是什么叫生命是这概念哈,我还跟大家提过。对吧,就是我们要去,我们要去申请一块内存,其实声明定义一个变量就行了,对不对,就是我们啊去分配内存的方式就是声明式的,但是声明式不仅是说的内存那个啊,它这里面说的什么呢。
04:07
说的就是我们不需要亲自去做很多事情,不需要亲自去操作,这我们只需要去告诉他,诶,我要更新。那他就会帮你去更新,你只需要更新数据就可以。那个大家知道页面的显示是根据数据显示的吧,以前我们要想更新界面必须更新谁。更新动物元素吧。那么呢,我们以前要做的事情啊,都是自己亲自做,即使你用上了j query也是亲自做的,JA只是让你的语法更简单。让你的编码更简单,但你还是在操作中吧。那有了它以后就不用了,你只需要去更新数据就可以了,那数据更新界面就会自动会会变化。这就是他所说的什么生命意思?好,下面一个非常重要的。
05:01
叫什么呢?组件化大家应该要知道啊,譬如说啊,我们有一个要做一个非常复杂的界面功能。啊,怎么样简化呀,大家说。啊,怎么样简化一个特别复杂的鉴定功能啊,那我们想就是复杂的东西要想简化是不是又拆分了。那很简单啊,我就把它譬如说有的有头部是吧,譬如就有我们这个为例嘛,就有我们这个界面为例,那我可以把这一部分是不是拆分出去。对不对,再留下下面部分或者底部还有一些对吧,一般不就是这样的结构吗?或者中间又有左边和什么右边。其实现在做一个什么呢?做一个界面功能的一个拆分,而每一个小的界面功能就是一个概念,叫什么呢?主见。这是一个组件,这也是一个组件,这底部也是个组件。
06:03
那你想想看,现在我们是不是只要把各个组件写好,再组装起来就可以?你这么做是不是相当于将一个复杂的东西简化了?啊,这是一个是,还有一个是维护起来是不是也方便一些。其实大家要知道啊,写任何一个软件,写任何一个应用,它不是今天写完了,明天就啥事没有了,不是他要维护。知道什么叫维护吗?就是有时候需要改造啊,啊,需要修改啊等等,那你想如果你写在整个写的所有写在一个文件里面,那改起来其实是很费劲的。对吧,那如果譬如说我这一部分有问题了,那我是不是改这个组件就可以。大概能懂吧,先大概懂啊,里面具体怎么实现啊,怎么写,那是另外一回事啊,下面叫什么呢?一处学习,随处编写,什么一个概念呢,其实现在主要是它。
07:02
啊,不仅能写web应用。啊OK,就浏览器上运行的应用还能去写,有一种应用叫还有这样一个技术,那这个技术能干嘛呢。啊,也就是说你用GS用S写的啊,用GS写的呃,应用能够直接运行在手机上。跟原生的应用差不多。它可以让你的应用呢,打包成安卓的应用,打包成iOS的应用。啊,很强的。这个能懂吗?啊,你别管它怎么实现的啊,你现在不用研究他怎么实现的,你知道他他能干这种事情就行,他是一个跨平台的。啊OK,可以实现跨平台的一个效果啊OK。还有一个它既能去写在浏览器端,也能写在服务器端啊这个东西。啊,到时候我们需要的时候再跟大家说,先大概有个了解啊,现在不用背这些,这些都不用背。
08:05
好,除了这三这几个,我还跟大家加了几个,我们来看一下。这一个叫什么呢?高效就是react是好像效率是最高的一个G,再有一个这个呢,大家可能现在还不理解,到时候再慢慢的感受啊,叫单向数据流,到时候再说啊。下面我们来说一下它高效的原因。啊,有两个概念啊,一个叫虚拟动。啊,这些概念后面以后面试的时候啊都会问的啊,先简单的了解一下虚拟动啊第二个呢叫什么呢,就算法啊什么意思呢。啊,也就是说我们再去啊,大家知道很多时候一个功能写出来,很多时候是不是在更新界面了,更新界面的效率就能够反映你这个应用的效率高不高。
09:01
初始化显示没什么,主要还是在我进行一些操作更新界面的时候,你能不能很快的更新。大家想假设我这个界面里面有有这有这十个地方需要更新,那我们以前的做法是什么?找到这个地方修改它的多元素,对不对?一个一个改呗。那你想十个地方是不是要更新十次?这个能不能懂啊OK。我们以前是一个一个修改的,但它现在不是这样一个意思,它是什么呢?它有一个有一个概念叫训动,实际上是一些对象,实际上就是一个一些对象。这些对象呢,跟我们的动物元素的对象是对应的,记住了是对应是对应啊,不是相等是对应的,你改你先不要改那个动物元素,你先改什么呢?改这个虚拟动物,改这个虚拟动物的过程中,它不会去更新界面。懂不懂,最后他才会干嘛呢,才会将这个虚拟动的修改映射到。
10:07
真实的DOM里面去。那个时候就叫批量修改了。怎么样批量修改,就是一次性改多个嘛。这样的话,我的界面的重汇的次数要什么,是不是少啊次数要少。还有一个它有一种,它有它自己的内部的一些算法,统称为多算法,这个算法是算什么的,是算我哪些地方需要变,哪些地方不需要变。你并不是所有地方都更新了吧?你可能是不是界面的某一个地方或者某几个地方更新了。他能算出来你哪些地方做了变化,它只更新那个变化的部分。其他的部分它不动。这样能够干嘛呀。减少更新的区域。我们要提高效率,不就从这两个方面着手吗?
11:00
一个更新的次数,一个减少更新的,更新的区域,我变化的区域,我变化的次数越。那不更效率更高吗?无非就从两个方面着手吧。啊,这个大家先理解,先别管它怎么实现的啊,因为我们刚刚才学嘛。啊看,因为这个东西呢,是在面试的时候啊,容易被问到的两个点啊,一个是虚拟多的这样概念,一个是动地算法,至于算法里面具体怎么算的,其实是大家不用研究,大家只要知道他有做这样一个事情,他的目标是什么啊。最小化页面重绘就是减小啊,重绘的一个区域。OK。好,前面呢,说了这么多,都是大家需要有一个了解就OK啊。
我来说两句