给自己挖个坑,开始去开发javascript富应用框架

丁文森

为什么要框架

随着电脑运算能力的不断提升,越来越多的网站开始将一些数据处理,简单的业务逻辑交予前端。于是前端,特别是所谓的 Webapp 中,出现了大量的数据处理以及业务逻辑,前端的javascript代码已经不再是简单的判断用户输入那么简单。和后端开发一样,当人们不能容忍php一个页面里面写下所有的业务逻辑和HTML代码的时候,他们便会去找一款MVC的框架。前端现在也需要。

我理解的富应用有两个好处,首先会完全将前端和服务器端的开发独立开来,即将服务器端的V完全交予前端人员开发,于是便可以在前期规划完API后进行独立开发。再者就是用户体验,不会出现传统网页上面的页面全局刷新跳转的情况,这样就更像软件的体验(如果需要使用 webkit 打包便可以成为某种意义上的软件)。

现有的框架

自身接触过的框架有 BackboneJS,EmberJS,AngularJS,三个都是不错的框架。

  • BackboneJS 是三个里面唯一一个已经认真读完源码的框架,代码写的很不错,而且这个框架也被国内包括豆瓣,百度模仿了。他侧重点是写了一套不错的Event的机制,当你定义的Model变化的时候,会触发相应的事件,问题就是那些"会触发的事件“都要你自己去定义,因此你需要手动更新DOM,会去写很多代码。

  • EmberJS 使用的第一感觉就是他的双向绑定很舒服,不需要再像BackboneJS一样去手写很多代码。但是EmberJS实在是太大了,而且写代码前总要不断去设计Model,给我自身的感觉就是不够的自由。而且当你的后台不能满足 restful 的时候,自己写请求然后处理的时候,会发现很麻烦。

  • AngularJS 是目前项目中正在用的框架。使用的时候感觉很特别,你可以通过directive去定义很多自己的HTML元素属性。开发的时候你不需要去过多的关注Dom如何变化,你只需专注的处理你的数据。但是 AngularJS 里面运用了太多的新东西,特别是Form处理的时候,数据的处理完全依靠HTML5的内容。Angularjs 里面大量的用了 ng-xxx 的属性,在HTML5里面自定义属性推荐为 data-xx 的格式。还有就是 AngularJS 的速度和性能都不很理想。

以上都是个人观点,不足以成为大家不去尝试的理由。当然还有一些很不错的框架,例如 Knockout。

我为什么要挖一个坑

作为一个前端的新人,希望能够去给自己挖一个持久的坑。在刚刚开始学编程(刚刚开始是PHP)的时候,一个长辈就和我说我的PHP只是处在入门的级别,想要继续提升建议去自己维护一个框架。但是这个框架一定是要自己持续在用的,要不然你维护不好。现在前端这块再次到了这样的瓶颈,所以决定自己开始开发和维护自己的一个框架。

现有的开源更多是代码的开源,然后鼓励大家一起去提供代码。我想,除了挖一个代码的坑以外,在这里持续的更新项目正在写或者刚刚写完的模块的想法。有问题欢迎指出讨论,在代码还在设计的时候可以得到改正。

我想挖的坑的大概样子

  • 双向绑定:虽然有人说这个不太好,但是这个的确可以减少很多代码。
  • 同时支持占位符和正则的路由。
  • 支持用户登录权限认证,相应url需要登录时将会统一跳转。
  • 支持自定义html属性添加,方便插件模块化。
  • promise 风格的支持。
  • 简单的模板语言支持,主要以自定义属性的形式来处理模板。
  • Form 表单的统一验证处理。
  • 不强制绑定restful,但是会制定其他规则来避免用户手动请求。
  • 内建类似 BackboneJS 的Model,Collection,根据服务器返回内容自定建立,并绑定到模板。
  • 让前端工作能够只需要关注模板和数据管理,其他尽量都自动完成。

项目目前完成板块:事件绑定及触法、地址处理以及路由处理。今后会逐一更新。(截止至2013年9月24日)

项目目前地址: https://github.com/HaiyiYun/VintJS

阅读 7.9k

Vincent
完美主义者,概念主义者,左脑右脑趋于平衡者。

完美主义者,概念主义者,左脑右脑趋于平衡者。

787 声望
34 粉丝
0 条评论

完美主义者,概念主义者,左脑右脑趋于平衡者。

787 声望
34 粉丝
文章目录
宣传栏