Web App的零框架解决方案

2020-06-22

Ann Ann

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

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

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

辅助功能库(Helper Libraries)

路由库(Routing)

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)

辅助开发库(Development Assistance)

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

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

数据绑定(Data-binding)

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

模板库(Templating)

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

微框架(Micro-Framework)

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

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

Python零基础入门

start2025/02/12 03:14 (Sydney)

Web全栈班24期 NodeJS方向

start2024/12/08 11:30 (Sydney)

logo

Follow Us

linkedinfacebooktwitterinstagramweiboyoutubebilibilitiktokxigua

We Accept

/image/layout/pay-paypal.png/image/layout/pay-visa.png/image/layout/pay-master-card.png/image/layout/pay-stripe.png/image/layout/pay-alipay.png

地址

Level 10b, 144 Edward Street, Brisbane CBD(Headquarter)
Level 8, 11 York st, Wynyard, Sydney CBD
Business Hub, 155 Waymouth St, Adelaide SA 5000

Disclaimer

footer-disclaimerfooter-disclaimer

JR Academy acknowledges Traditional Owners of Country throughout Australia and recognises the continuing connection to lands, waters and communities. We pay our respect to Aboriginal and Torres Strait Islander cultures; and to Elders past and present. Aboriginal and Torres Strait Islander peoples should be aware that this website may contain images or names of people who have since passed away.

匠人学院网站上的所有内容,包括课程材料、徽标和匠人学院网站上提供的信息,均受澳大利亚政府知识产权法的保护。严禁未经授权使用、销售、分发、复制或修改。违规行为可能会导致法律诉讼。通过访问我们的网站,您同意尊重我们的知识产权。 JR Academy Pty Ltd 保留所有权利,包括专利、商标和版权。任何侵权行为都将受到法律追究。查看用户协议

© 2017-2024 JR Academy Pty Ltd. All rights reserved.

ABN 26621887572