美文网首页Windows开发人员迁徙计划
Vue.js学习系列(1)什么是Vue.js

Vue.js学习系列(1)什么是Vue.js

作者: shareyue | 来源:发表于2018-03-04 18:52 被阅读0次

    什么是Vue.js?

    前端开发的历史

    什么是“前端”?

    简单来说,我们从浏览器里面打开的页面就是所谓的“前端”,因为“前端”是相对于“后端”来说的,那么“后端”就是网页的数据来源,比如服务器、接口、数据库等等。

    通常的,我们使用HTML、CSS、Javascript等技术来进行前端的开发工作,所以要想学习本系列,必须掌握这几门技术作为基础。

    过去的程序代码是由服务器端语言根据数据生成的前端代码,而随着浏览器运行能力的提升,前端技术已经不仅仅是作为界面显示的辅助,而成为了独立出来的一门新技术。也就是将显示部分完全交给前端来进行整合和渲染,而后端程序只负责数据的生成和接受。

    这样做的好处是让人沉浸于某项实际工作,而不需要多人同时进行配合工作,不但大大提升了工作效率,还让工作本身变得更加有趣。

    大名鼎鼎的JQuery

    如果说起前端就不得不说其JQuery,在浏览器还很弱小的时候,JQuery给了我们很多的方便

    • 更多高级的选择器
    • 浏览器的兼容性
    • 动画处理
    • 很小的尺寸和运行效率
    • 大量的插件

    可以说没有JQuery也就没有了我们现在百花齐放的框架体系,很多的框架本身也是在JQuery的基础上进行构建的。

    AngularReact

    当然前端框架也有很多很流行的,在这里我就不多加举例了。不过原理和目的都是类似的,就是希望将前端技术分离出来。

    说白了就一堆Javascript的程序员说:我们不学动态语言也能做网站

    Vue.js横空出世

    Vue.js借鉴了很多前面两个框架的理念,尤其是Angular。但是Angular和React都犯了一个前端框架的大忌:
    都使用了Javascript的变种而非纯粹的Javascript语言

    Angular使用了Typescript(一个更像C#的Javascript,一个爹出的:Anders Hejlsberg),而React使用了JSX

    这里就有一个问题,只要不是Javascript,其实都是无法在浏览器里面被直接支持的,前端技术又不允许我们使用动态生成代码的技术,那怎么办呢?这时候就需要对这些文件类型进行编译操作,编译成浏览器可以支持的Javascript格式,并对代码进行一些优化。

    在Angular和React推出的时候,其实大家也是买账的,毕竟当时并没有更好的办法来解决Javascript过于弱小的问题。但是最近新的ES6标准出来之后,很多新特性被加入到Javascript当中,让这门语言有了新的生机。作为初学者,我觉得甚至没有必要去学习Typescript和JSX。

    而Vue.js解决了这些问题,它不需要学习额外的语言基础,只要掌握好Javascript就可以了(当然是ES6版本的)。

    (其实说了半天都是借口,其实最重要的原因是Vue.js是中国人写的,所以文档更清晰,下面附图)

    <div style=" display: flex;">
    <div style="">
    <img src="https://avatars1.githubusercontent.com/u/499550?v=4" height="100px" />
    </div>
    <div style="flex:1;padding-left:20px;padding-top:10px;">
    Vue.js作者

    Evan You

    一个设计师出身但是现在转向前端开发的牛人
    </div>
    </div>

    JQuery为何风光不再?

    使用场景变化

    JQuery作为老牌的前端框架,到今天为止还有大量的支持者,严格意义上来说它并没有没落,只是使用场景上更适合于轻量化开发。

    比如你只会想要添加一行代码就能够得到一个模块,那么你还是需要JQuery,而且大部分的JQuery插件的调用也非常的简单。

    但是现在已经是2018年了,在几年之前,苹果手机就带着APP席卷了全球,而在手机上,Web的体验并不好:打开慢,切换慢,显示网页字体还小。
    一时之间所有的前端设计师们除了偶尔做做网站无所适从,仿佛被这个世界抛弃。但是开发人员们并没有放弃,凭着在PC上开发的经验,一大批类似APP的移动端Web框架涌现出来,又随着几年的发展,大规模的前端页面终于可以够得着APP的尾巴了。这就是SPA(单页面应用程序)

    什么是SPA

    SPA(single page web application):单页面网页应用程序。当访问的时候其实只有一个页面被访问,页面内部的功能和跳转都是临时加载进来的。与过去的多页面程序不同,多页面程序是通过连接的跳转并请求一个新的网址得到的。而SPA则是在同一个页面里面进行跳转,

    其优点如下:

    • 大幅提升了加载速度
    • 只需要通过接口获取到数据即可
    • 支持历史和路由
    • 可以制作出规模很大的Web App

    缺点我就不赘述了,很多地方都在评论,总之SPA很值得使用,并且现在的前端框架都是基于此概念进行开发的

    Vue.js解决了什么问题?

    Vue.js作为一款非常优秀的前端框架,几乎满足了我所有的需求,如果你之前没有用过,见到它你会有一种相见恨晚的感觉。

    • 流行的MVVM架构
    • 双向数据绑定
    • 多文件的模板格式
    • 组件系统
    • 超小的体积
    • 全球开发人员的支持和扩展
    • 全中文保姆式文档

    Vue.js有哪些问题?

    Vue.js的小型化也有一些问题,当然这其实也并不能说是劣势,甚至可以说是某种优势

    • 不包含太多的额外功能,无法直接进行界面级别的开发(当然第三方的UI库又多又好)
    • 没有自己的IDE平台,不像C#那样整个生产链条都具备(各大编辑器也都有Vue.js的插件库)
    • 需要使用npm安装,并没有安装包(现在来看安装包好像才是落后的,Git其实比微软的在线安装程序更好用,全球通用)
    • 需要编译才能使用(貌似也没有那个前端框架不需要使用Webpack了)

    其实很多问题只是在VS IDE平台下涉及比较少,其他平台其实早就在使用了,而且经历了多年早就成熟,使用起来也没有原来那种别扭的感觉。

    安装和使用

    说一点题外话

    本身与学习无关,不感兴趣可以直接跳到下一节

    其实我个人还是很羡慕身在国外的程序设计人员,虽然软件开发行业是这个世界上为数不多的信息相当对称的行业,无论在国外还是在国内都能够获取到最新的行业动态。但是因为毕竟美国的开发环境很容易造就出开发牛人,而中国封闭的网络环境和形式教育,让中国人很难走出国门,看看外面的世界。

    尤其是Windows平台的普及,甚至是盗版Windows的普及,让越来越多的普通人都懂的计算机操作。这对于软件的应用来说是一件好事,也就是说中国拥有者世界上最大的计算机、网络、智能手机的用户群体。但这并不意味着我们也拥有者相同多的开发人员。

    在中国,无论是什么行业,无论是否真的必须使用Windows操作系统,我们都在被动使用着,原因很明显,我们用的QQ、网银U盾、浏览器等软件往往只支持Windows操作系统。如果我们不使用Windows,那么我们就被这个世界隔离了。也许你是一个天才,但是在一个全是疯子的村子里,也许你自己才被看做疯子。

    而Mac系统在中国,除了真的有一部分作为生产工具意外,还有相当数量的Mac电脑被替换成了盗版的Windows系统,他们要的只是那么一个外壳和发光的Apple Logo而已(现在已经不发光了,我估计会影响很大的销量)

    Mac OS尚且如此,Linux在中国的应用几乎仅限于少数的开发人员了(因为服务器需要Linux),而Linux平台对于开源精神的影响相当深远。无论是哪个平台,都在或多或少的收到Linux及其开源体系的强大影响。因此此次迁徙计划的目的也是朝向Linux平台进行转移。

    Linux开发人员崇尚“简单就是美”的理念,使用的都是及其简单的软件来进行程序开发,比如文本编辑器、手动构建、命令行工具等。这些工具不仅能够在LInux平台下面进行运行和使用,并且很容易移植到其他平台当中,而且相比于Mac和Windows系统当中过分强大的安装包体系,Linux那种“输入一行命令就能用”的方式简直可以说是完美。

    如果你憧憬在Linux平台下开发,但是苦于没有合适的教程和学习方法,就跟随我这个老Windows程序员一起走向Linux的怀抱吧。

    再次也呼吁更多在国外有开发经验、或者学习能力强的开发者能够将更多技术带给国内的技术开发人员。

    额外说一句,国内本科计算机专业的程序员是受到严重误导的一代,学习的都是过时的技术,并且学习的方向也有严重偏差。如果你也是中国的计算机专业的毕业生,或者某些软件培训机构的学生,也最好跟着我一起从坑里跳出来。不要一直做井底之蛙。

    相关文章

      网友评论

        本文标题:Vue.js学习系列(1)什么是Vue.js

        本文链接:https://www.haomeiwen.com/subject/padqfftx.html