00:00
大家好,我是学习园地的特约讲师高悟峰,上节课咱们了解了一下will的课程体系和学习will需要的一些呃基础知识,那这节课呢,我们来认识一下will,在学习一门技术之前,我们要了解他的前世今生,当然了,前世今生呢对我们学习并没有太大的帮助,最主要的是我们在茶余饭后跟别人聊天的时候,显得自己还有逼格就OK了。那will它呢,嗯,这个名称起源于就是will,就是MVC中的视图,那我们用will呢,是前端开发框架,也是开发前端的,那就跟我们这个view的功能也是类似,不光是呃,读音类似,所以呢,这是它的起源,它就是一套用于构建用户界面的一个框架。那目前的版本呢,是VIVO3.0.4,我们来看一下它的官方网站。我们来看一下VI有的中文的官方网站呢,是CN点,嗯,VIVO GS点化剂。这官网站呢,大家可以自己去了解一下,看一下,那咱们呢,有一些呃帮助的问题呢,也会在这里边查看文档啊,API啊,或者看视例,咱们再逐个去看,那有兴趣的话自己去看一下,那我们查找VIVO的版本呢,比如说如果我们在CDN上使用,那我们可以用在这个网站,比如说boot c dn静态资源NCD里边vuee我们去查找一下,看一下在CDN里边发布的啊,CDN里边发布的最高版本的是3.0.2,那我们来看一下,如果我们用NPM下载去安装这个VIVO的话,那它现在是多大版本了,那我已经把这打开了,你可以搜索vuee,那下边呢,就是搜索的一个结果,你已经搜过了,你自己看一下。
01:34
这是嗯,没有,那现在呢,这是它的历史的一些版本,当前这个标记标记的是这个版本啊,你看这一版本十三点零点四,现在是这个对吧,13天前更新的这个版本,当然了,我们除了用VIVO,那我们还会用到它的呃,脚手架,那么其他的一些配套的版本,那你都可以搜索一下,比如说VIVO c你可以去搜索,然后呢,看对应的版本都是一样的啊,这里网比较慢,我就为大家操作了。
02:02
可自行去看一下。View的核心库呢,就只关心视图层,不仅容易上手,还便于于第三方库,对吧?整合也就是我们在学习view的时候,它是一个框架,那框架和我们前面学的解query那些库什么区别呢?那咱们说了解query,咱们不一定把它看成是框架,只看成是一个库,那库呢,就里边有很多我们比较方便的操作的一个方法,那它和解query的编程思想也是也是不一样的,解query呢,是基于盗M模式的一个编程思想,而我们vuee呢,它是一个虚拟盗,那具体什么盗,什么虚拟道,咱们在课程里边会详细讲解,你就记得编程思想是一个颠覆性的一个改变两种思想方式了,那有可能说我们要学习一个上乘的武功,那你最好把原来的武功给废掉,对吧,不然的话你容易两种思想融合在一起,容易走火入魔,所以呢,我们这块在学会的时候,完全不要用到那种盗墓的那种思想。
03:01
完全是一个不一样的,不要用盗墓的思想去使用vuee去开发,这样的话是不对的,容易走火入魔,这点大家要记住。那库和和框架有什么区别呢?库只是一个模块,一个程序,我们用到里边的东西,那框架呢,是一个半成品,它里边呢已经帮我们,特别是做大型项目,帮我们把整个项目的架构帮我们搭好了环境给我们配置好了。而且呢,把常用的库给我们自动安装好了。那为什么说还并用于第三方库呢?如果VI里边本身它这个库如果没有我们需要的功能,那你还很容易载到NPM上面,对吧?那个官方的仓库里边去下载第三方库来绑定到vuee里边,跟vuee结合一起使用,完成一些我们想要的功能。这就是框架,可以说框架是由多优库组成的,而且包括项目的本身的结构,所以是一个半成品,那我们基于半成品项目开发会有很多优势,一是开发速度比较快,另外呢,呃,我们不光是开发速度快,另外呢,我们还非常的容易,因为特别是项目,项目之间,如果你再去二次开发,改一个别人也用这个框架去开发的项目,去改的时候,那用的是同一样的架构,那同一样的结构,那特别容易上手,如果咱们不用一个统一的框架,如果都用自定义的这样的框架去开发的话,那每个人一套编写框架的风格,那么你在融入到别人团队的时候,或者别人融入到你的团队的时候,架构不一样,那么学习的成本是很高的,融入的成本那肯定也是会更高的,如果我们都选用统一的一个框架,这样的话,我们每个人对这个框架都很熟悉,那项目结构都是gpt框架了,那我们在开发的速度上对吧,或者开发效率上,那都会大大的提高。
04:45
所以呢,这是will的核心层,可以融入我们第三个库,结合我们去开发,是这样的一个情况。那么我们为什么要学习啊,没有框架,咱们说了现在的开发模式无非就两种,一种呢是二次开发,也就相当于我们买的二手房,对吧?你装不装修可以拎包入住对吧?那我们二次开发有可能你换个logo,那这个项目就有可能交付了,对吧?因为原来功能就是有的,那不一定是所有的项目。
05:15
都有,所有的需求都有可供你二次开发的,对吧,开源的程序,或者以前你自己公司的老项目去使用,对吧?那如果我们新建一个项目,这个业务模式很独特,那我们就需要基于框架去开发。所以呢,在2015年之前的前端是没什么框架的,都是用一些第三方的库啊,对吧,比如说简二的库什么的去开发,就显得很高大上了,或者像good子抓呀这些东西就很大上了,对吧?那从2015年之后,那么像VIVO啊,或者是啊安IDGS啊这些框架陆续出现,那作为一个假如说从后端转到前端的,那后端我们学Java会学什么SSM啊,对吧,这些框架学PP啊,或者啊3PP这样框架对吧?像Python那也加构啊这样的一些框架,那都是用框架用习惯了,而前端没有框架,对于后端和前端端的开发人员来说,那对还是一件很麻烦的事,自己搭建结构,当然了,很早以前的项目呢,也不用管,一些移动端不用管APP,那项目都是很小的洗钱的界面,那我们用普通的div加CSS啊,对吧,或者是想是布局啊,那再加上一点点特效就完成我们想要的东西了,而现在我们在开发外部项目的时候,好多好多工作都将后端的事情拿到前端,在前端实现一些业务,那变得前端的开发越来越复杂。
06:28
啊,那现在一个,嗯,现在一个高级的一个前端开发工程式,就不得就也不能说不能不用这个框架,然后去开发,所以呢,现在开发框架是现在的前端开发成员必备的技能,当然了,你不一定非得用VI,对吧,当然VIVO是国内开发的对吧,那符合中国人的开发习惯,那你也可以选择生态比较完整的APP开发,现在呢,是这个两个比较大的一个阵营,但是VIVO呢,更受中国程序员的一个青睐,那现在使用用户群体呢,也非常的多。那就是我们没有要了解一下它。
07:02
那。它刚才咱说了,它和呃这个几query去比,那他说了,如果我现在不用框架,一些小的东西,你还可以选择几块RY那个办货方式去开发,当然小的功能你还可以用谁呀?还可以也可以用will,只用will的里边基本语法也可以去开发,用C涤N引入对吧,像引入几que一样,然后呢,直接使用里边的基本语法,用虚拟盗的模式啊,对吧,双向绑定的方式啊去开发,当然我们现在做项目也没有那多必要说。你小项目就用吧,小项目你就几条加S有可能就解决了,那你也不用什么框架,不用什么直接用就行了,但是我们现在开发的程序都是越来越复杂,项目越来越大,对不对?那还是结合这样的开发是比较好的。所以呢,Wille它跟嗯,Will跟j query是有相似的地方,它们都属于一个类似于框架或者库的东西,听懂吧。那以前的程序,比如说你从原来的GS到解RY这个类库,再到前端模板引擎,对吧,这种盗墓的操作,那现在你需用框架,你就可以用这种虚拟盗的,那可以提高对吧,就不用盗墓的操作了,可以提高什么?呃,渲染的一些效率,特别是双向数据绑定的这样的概念,比如通过框架提供一些指令,那我们前端的成员呢,只要关心数据的业务逻辑,不用再关心DOM是如何渲染的了。
08:19
那也有人觉得vuee,或者也有人教vuee,他总愿意什么的,嗯,去讲解这个源码,其实我觉得那个没有必要啊,当然了,你有精力或者有能力去分析源码不是不可以的,就像呃,其实这个道理呢,就像跟我们学开车一样,那我们VE这个will和解呢,他们都是只是一个开发工具而已,对吧,我们真正要完成的是我们一个项目的业务逻辑。就像我们学开车,那么开车就是一个技术,那车呢就是一个工具,那我们要用这个车去做一些运营,对吧,这样的一些生意。而我们没有必要去学这个汽车怎么制造的,对吧?它的一个运作原理,当然我们了解会更好,对吧?那我们学习VI VIVO这个框架,如果我们分析源码,那你想是自己去再写一个框架吗?就相当于你学开车对吧?那你还要学开车的一些原理,发动机怎么工作的,对不对?然后呢,我们自己去造一台汽车吗?
09:14
没有必要,没有的说,我了解它的源码,那么我可以在上面去改造,你想我们开车的时候允许你去改吗?对吧,如果你觉得改对你有帮助,他这框架里边本身最好的方式就已经可以使用了,不需要你去改的,也不需要你去改动了,那都说了,我了解他编程风格,按他的编程风格去,嗯,去开发我的一个项目,啊,这也可以,但是呢,咱们去,因为这是一个框架,那它就像一个球似的,你不知道从哪入手,你看部分工作也没什么用。知道吗?所以呢,你也不用去完全研究它的源码,通过源码看出功能来,我们只需要应用它给我们提供的功能即可。所以呢,大家不用去分析那个源码,减少学习的时间,把精力放在我们的业务流程上,一定要记得把精力放在我们业务流程流程上才是真正的一个开发成员,你把这个工具研究再透的话,对吧,有可能提高你一些开发效率,但是你学习的时间对吧,会大大的加长,那随着框架的升级,不断的迭代,你的源码它也是转变的,对吧,有可能会影响你,对吧,而通过它上层的一些应用,我们一样可以了解。
10:18
作为一个专业的程序员,那你可以去想象一下,如果让你设计一个view,根据它的功能你能不能去写,去底层,那你倒推一下也应该知道它里边是什么样的一个结构呢?所以咱们在讲课的时候呢,尽量不打开它的源码,去分析它的功能,通过源码看出功能对吧,能直接应用,这也是我建议你学习的方法,能将它学习的效率大大提高。一些没用的事情,咱可以不去做。那为什呢?咱说是用构建用户界面的渐进式框架,那什么是渐进式?你那这里边给大家举例子了,就跟呃这个图一样,开发呢可以根据需求逐渐递增所需要的方式,但是每个方式呢,都不依赖前,嗯,就是每个方式有不是依赖强行的这样的一个特点,什么意思呢?比如间接的框架,最大特点的就是灵活性,如果应用足够小,比如说你就写一个非常小的东西,那我们可能仅用到VIVO的核心对吧,即可完成我们想要的东西,比如说我们就想用VI便利一下数组,对吧,那我就用这个东西就行了,那随着应用规模的不断的一个扩大,那我们才开始逐渐的渐接什么,逐渐的会引入比如说路由的功能。
11:22
呃,VS状态管理的功能对吧,比如说我们小项目也可以不用脚手架脚大的项目呢,我们再用上脚手架这样的功能,对吧?当然我们现在只要用VIVO开发,肯定都是用脚耳架的。那不管是应用体积还是学习难度,都是一个渐进式的,一个平衡的一个曲线,学习的时候我们也是从简单一点一点的去开始的,其实我们学习view的难度和学习解,如果你掌握NTM派、ES6啊这样的一些基础的话,那它的难度跟解是差不多的。是相当的啊,所以呢,不要说好多人都是排斥东西,一一听到框架这个词就觉得很难,很庞大,其实不是,对吧,你把它看成一是一个小库对不对,很小的,因为它就两个核心,一个是详式的数据绑定,当数据发生变化的时候,是不是可以自动更新,对吧?而我们就不用关心盗墓操作,专心这个数据的操作就可以。还有是最大的一个好处,像view啊,Reacts最大好处就是什么?组件化为开发,我们用JA瑞啊,或者是也可以,比如CSS,我们也可以是做成组件,但是呢,组件太散,你绑定的是一个完完整整的一个整体,而相对S朋友,那么基本上把我们的组件完全独立出来了,那组件和一个页面同一个组件可以用多次,那什么是组件?现在我就可以简单给你说一下,比如说。
12:42
按照功能切分成若干个基本单元,对吧?组件可以是一级一级整合的对吧?可以是几个组件合成了一个大组件,单独的一个组件可维护用,比如说你按钮,你把它做成一个组件,那按钮上面呢,有什么,有样式,有人TML对吧?还有一些JS特效,如果捆绑成一个组件的话,你在任何地方都可以用,对吧?假如有100个地方用,那么我们这其实在这个,呃,组件我们需要变化了,随着程序,那我们只要改进组件,那100个地方都变了,那不光是一个页面上可以用同一个组件,那多个页面上也可以用。
13:14
同一个组件都是可以的,而且多个组件,比如多个按钮可以组合成一个按钮组,我们把这按钮组来叫成一个组件都是可以的,你建页面上建到的任何一个独立的一个单元,你都可以把它归成组件,但是通常我们都将什么都将可复用东西做成一个组件,如果不复用的话,直接就像我们传统那种方式写就可以了。但是也可以做成组件,任何你看到的东西都可以做成组件啊。这就是view的呃,两大核心,那这块呢,我们只是简单一下了解一下view它的一些基本的就认识一下,那下节课呢,们来体验一下,用CDN的方式呢,我们装一下,然后用一些它的简单功能做几个例子,先体验,然后呢,体验完之后,我们用上脚手架开始一个语法一个语法的讲,然后一个插件一个插件的讲,把为都讲完之后,我们再弄一个呃,完整的一个项目,再把所有的知识点串起来,形成项目,让大家练习一下,只要大家用微协会一个项目,那就对VIVO有个很好的一个了解了,那就可以投入到生产生活中,就投入投入到工作中,对不对就可以了。
14:17
好,谢谢大家,这一块我们讲。
我来说两句