你的位置:首页 > ASP.net教程

[ASP.net教程]大话前端组件化


  在软件工程中系统的架构也在随着规模不断的演进,最初的面向过程的软件开发到现在面向对象的软件开发。软件工程也逐渐进入组件化开发阶段。然而前端的组件化的发展一直滞后,传统的桌面开发早已经进入组件化开发阶段。

  Web1.0时代前端主要是HTML与CSS的天下,JS则是简单的辅助工具而已。到了Web2.0时代前端开始走向以AJax技术为核心轻量级别交互,以JQuery、ExtJS、Dojo代表前端类库为导向的开发开始迅猛发展。JQuery在前端领域叱咤风云多年,人们都纷纷认为JQuery战无不胜。而ExtJS、Dojo在UI组件上做的面面俱到,对于当时的管理类Web系统来说也是福音。同时也看见前端组件化初见苗头,人们都纷纷意识到前端组件化带来的巨大好处。

  到了Web2.0后半页移动互联网的迅速崛起,交互又传统的PC转到移动端。而移动端对于交互性与性能的要求也要比PC端强的多。同时浏览器的信息量也越来越大,传统的框架已经不堪重负。已经无法保证前端维护性与性能。

  人们就开始思考前端已经早已不是类库能解决的问题了,前端已经成为一个工程化的问题。第一代前端框架涌现出来,以Knockout.js、Ember.js、Backbone.js为代表。第二代前端框架:以Angular.js、React.js、Vue.js、Avalon.js。第二代前端框架几乎以MVVM为导向,除了React.js。以React.js与Vue.js为代表的前端框架已经使用了组件化的思路进行开发软件,围绕组件进行业务架构。

Angular.js 1.x架构图

Avalon.js 1.x架构图

Vue.js 1.x架构图

React.js 15.x架构图

  在前端进入组件化的阶段的同时也遇到了不少的问题,这些问题在传统的桌面端早已经不是问题。前端组件化主要面对以下问题:组件与子组件通讯可视化组件的外观可维护性复杂组件的可维护性组件与组件的隔离性等。组件化意在解决业务开发人员在开发业务时无需关心组件内部细节进行快速的使用组件进行设计业务,组件化可以说是对面向对象编程的完整实现。

  组件化对Web开发有着深远的影响,直接影响到Web的设计、维护、测试,组件的切分,组件的开发。传统的网页开发模式将被推倒重来。新型的组件也将重新发明,重新发明轮子是不可避免的。同时组件也要兼顾各个消费端的需求。组件由单一服务于PC转向任何支持浏览器的平台。

尾巴:

  到目前为止前端领域依然是火热的造轮子阶段,谁也不比谁好,都有自己不足的地方。组件化的浪潮势必可挡,以React与Vue代表的组件化框架最有希望成为出色的工具。但是在前端蓬勃发展时代相信会有更好的轮子解决他们没有解决的问题。

  前端框架真正要解决的问题是开发效率与维护效率,而目前的框架主要解决组件的重用性与运行效率。真正开发问题实际上是卡在不断制造业务层的轮子与框架的使用门槛与组件的维护效率。