Web App的零框架解决方案

MVC框架(尤为是大型框架)有一个严重的缺点,就是会产生用户的重度依赖。一旦框架自己出现问题或者中止更新,用户的处境就会很困难,维护和更新成本极高。javascript

ES6的到来,使得JavaScript语言有了原生的模块解决方案。因而,开发者有了另外一种选择,就是不使用MVC框架,只使用各类单一用途的模块库,组合完成一个项目。css

下面是可供选择的各类用途的模块列表,摘自Andy Walpole的《2015: The End of the Monolithic JavaScript Framework》java

辅助功能库(Helper Libraries)node

路由库(Routing)react

Promise库jquery

  • RSVP.js:ES6兼容的Promise库
  • ES6-Promise:RSVP.js的子集,可是全面兼容ES6
  • q:最经常使用的Promise库之一,AngularJS用了它的精简版
  • native-promise-only:严格符合ES6的Promise标准,同时兼容老式浏览器

通讯库git

  • fetch:实现window.fetch功能
  • qwest:支持XHR2和Promise的Ajax库
  • jQuery:jQuery 2.0支持按模块打包,所以能够建立一个纯Ajax功能库

动画库(Animation)es6

辅助开发库(Development Assistance)github

  • LogJS:轻量级的logging功能库
  • UserTiming.js:支持老式浏览器的高精度时间戳库

流程控制和架构(Flow Control/Architecture)编程

数据绑定(Data-binding)

  • Object.observe():Chrome已经支持该方法,能够轻易实现双向数据绑定

模板库(Templating)

  • Mustache:大概是目前使用最广的不含逻辑的模板系统

微框架(Micro-Framework)

某些状况下,能够使用微型框架,做为项目开发的起点。

  • bottlejs:提供惰性加载、中间件钩子、装饰器等功能
  • Stapes.js:微型MVC框架
  • soma.js:提供一个松耦合、易测试的架构
  • knockout:最流行的微框架之一,主要关注UI

转自 https://github.com/ruanyf/articles/blob/master/2015/2015-01-16-zero-framework.md

相关文章
相关标签/搜索