网页编程零框架解决方案

由于网页编程不同于客户端编程,在MVC的基础上,JavaScript社区产生了各种变体框架MVP(Model-View-Presenter)、MVVM(Model-View-ViewModel)等等,有人就把所有这一类框架的各种模式统称为MV*。

框架的优点在于合理组织代码、便于团队合作和未来的维护,缺点在于有一定的学习成本,且限制你只能采取它的写法。

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

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

辅助功能库(Helper Libraries)

moment.js:日期和时间的标准化

underscore.js / Lo-Dash:一系列函数式编程的功能函数

路由库(Routing)

router.js:Ember.js使用的路由库

route-recognizer:功能全面的路由库

page.js:类似Express路由的库

director:同时支持服务器和浏览器的路由库

Promise库

RSVP.js:ES6兼容的Promise库

ES6-Promise:RSVP.js的子集,但是全面兼容ES6

q:最常用的Promise库之一,AngularJS用了它的精简版

native-promise-only:严格符合ES6的Promise标准,同时兼容老式浏览器

客户端与服务器的通信库

fetch:实现window.fetch功能

qwest:支持XHR2和Promise的Ajax库

jQuery:jQuery 2.0支持按模块打包,因此可以创建一个纯Ajax功能库

动画库(Animation)

cssanimevent:兼容老式浏览器的CSS3动画库

Velocity.js:性能优秀的动画库

辅助开发库(Development Assistance)

LogJS:轻量级的logging功能库

UserTiming.js:支持老式浏览器的高精度时间戳库

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

ondomready:类似jQuery的ready()方法,符合AMD规范

script.js:异步的脚本加载和依赖关系管理库

async:浏览器和node.js的异步管理工具库

Virtual DOM:react.js的一个替代方案,参见Virtual DOM and diffing algorithm

数据绑定(Data-binding)

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

模板库(Templating)

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

微框架(Micro-Framework)

某些情况下,可以使用微型框架,作为项目开发的起点。

bottlejs:提供惰性加载、中间件钩子、装饰器等功能

Stapes.js:微型MVC框架

soma.js:提供一个松耦合、易测试的架构

knockout:最流行的微框架之一,主要关注UI

本篇文章摘自https://github.com/ruanyf/jstutorial/blob/gh-pages/advanced/backbonejs.md

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值