我13年开始入坑前端,经历了原生,jquery,angular及到现在的vue,来谈谈这一路的心路历程吧。

在13年时,我最开始使用原生去写页面交互,取元素,加事件,写动画,还有ie6、7的兼容性,现在的前端是无法明白当时的苦。

但当遇到了jquery,就像悟空遇到了金箍棒,突然让你觉得,一切都是如此简单,突然让你觉得你千斤的背上卸去了一半重量的轻松。不用你再去为了获取一个元素写几行代码,只为了兼容某些浏览器,不用你再去为了一个动画焦头难额。它有强大无比的dom选择器,让你随心所欲的操作界面上的任何元素,包括改变样式,赋值,取值,乃至添加元素,让你爽上天,即使在现在这个框架无比强大的年代,它依然非常好用,另外,jquery相关的各种各样的插件会让你在开发中事半功倍。

但是呢,时代在进步,需求也在改变,随著大型网站越来越多,尤其是移动互联网的出现,单页面应用也就不断增多。所以,应用的复杂程度,代码的复杂程度都不断增加,此时,jquery就会有很大的缺陷,具体在哪,我就拿我上一个公司的项目说下。

我们那项目是一个单页面应用的web版,是一个企业应用,有差不多十几个功能。在我去公司是,架构已经形成,使用的jquery+ejs。没有使用任何其他框架,在开始功能很少的时候,没有发觉有太大的问题,但是随著需求增加,每个功能的代码量也就开始增加,可能仅仅一个简单的功能,都需要将近两千的代码量,而且代码主要用来干什么呢?用来获取数据,提交数据,将数据写入页面,及数据变化后,需要动态的生成html,然后在添加到页面。而且这所有的代码,复用性很低。到前两年,问题就相当突出,整个网站,代码总量超过了10万行,合并压缩后js文件都差不多一两兆,这还不是最主要的,最主要是当需要改一个小小的需求时,你会发觉几万行代码你都不想去看它,而且一个不注意就会导致意料不到的bug,此时,突然觉得,一切都难以控制。

随后,我们在新的功能里使用了当时比较火的,社区环境较好的angular1,使用了双向绑定,因为我们是企业应用系统,数据相关很多,所以减少了很多的取数据,写数据的代码,而且使用angular指令去组件化页面,提高页面复用性。使用service和filter去提高某些方法的复用性。这样,也就减少了很大部分的代码量,提高了很多的开发效率。

但是,由于我们本来是单页面应用,公司是创业公司,无法进行重构,所以在后面功能,每次都需要重新重构一个angular项目,而且,angular的学习成本和项目复杂度很高,一个小功能都是一个新的anglar项目。

随后,vue的出现,它轻量级,双向绑定,较低的学习成本,组件化的开发模式这些都优于angular1,因此,从此后项目,就开始使用vue及进行其组件化管理。

对于使用什么框架,需要根据项目需求和公司技术人员,公司状况而定。更重要的是,不管是使用什么框架,最终目的都是为了提高开发效率,开发质量,提高项目的可维护性。


数据取值填值,采用双向绑定的框架,vue,angular.avalon等,JQuery则负责除数据处理以外的事情。比如事件处理,动画,dom对象操作。两者基本都是混合一起用。没用说要抛弃那个一个。简单说,JQuery依然还是主流,但是把填值取值,这一块操作抽离出来,通过框架,把数据模型与dom对象进行绑定,实现视图与数据,数据与业务分离。


推荐阅读:
相关文章