不需要更多JS框架了

现在,JavaScript框架已成为Web项目开发不可或缺的一部分。那是因为很长一段时间以来,各种浏览器之间有很大的差别,人们不得不编写框架对此进行屏蔽。问题在于,各种浏览器甚至在基本问题上都难以取得一致,以致框架还要针对浏览器该如何工作设计自己的模型,比如如何传播事件、如何与DOM交互等。于是出现了许多框架,常见的有jQuery、Dojo、MochiKit、Ext JS、AngularJS、Backbone 、Ember、React等。对于这种情况,谷歌工程师Joe Gregorio博文中写道:

我认为是时候重新考虑JS框架模型了。没有必要发明另外一种做事方式,只要使用HTML+CSS+JS就行了。

Joe认为,在过去的十年中,浏览器变得更好了,它们对标准的支持也得到了改善,每个版本的功能都比上一个版本强大,而且还支持一些新标准,如HTML ImportsObject.observePromisesHTML Templates。而人们之所以还在编写JS框架,可能是出于惯性和习惯。

在进一步阐述观点之前,他对Web框架相关的三个概念进行了简单的区分。Gist是一段简单的代码,库是一个更大代码的集合,而框架不只是库的简单集合,它还有自己的事件、DOM交互模型。接下来,他说明了不需要JS框架的原因:

  • 框架是对Web平台的抽象,但由于存在“抽象漏洞(abstraction leak)”,开发人员有时候必须诉诸于HTML+CSS+JS,而且有时候还需要深入研究框架才能找出问题所在。这样一来,开发人员除了要学习HTML+CSS+JS之外,还需要花费大量的时间学习和研究框架。
  • 框架的另一个卖点是可以利用Widgets库,而实际上,框架并不是必须的,每个Widget都应该是独立的。语法高亮代码编辑器CodeMirror就是一个很好的例子。它用JavaScript构建,可以用在任何地方,而不需要框架。
  • 框架提供的数据绑定特性并不是必须的,即使需要,也应该以库的形式出现,而不是框架。
  • 框架最终会发展成为一个筒仓,为A框架创建的Widgets不能用于框架B,这会造成浪费。

Joe提出,后JS框架时代的基本思路是,开发人员应该使用HTML+CSS+JS的功能构建Widgets。这些Widgets相互独立,可以组合使用。Web组件为这一切提供了可能。HTML Imports、HTML Templates、Custom Elements和Shadow DOM等技术允许开发人员创建可重用的元素和功能。要了解更多信息,请查看下列文章和库:

而使用Web组件首先要有针对相关功能的Polyfills。他特别强调,Polyfills并不是框架,它们没有引入自己的Web开发模型,而是使HTML 5模型可用。同时,它们也弥补了浏览器实现与现有标准在某种程度上的偏离。MDN上经常有一些简短的、单功能的Polyfills

构建一个大型的HTML 5 Polyfill库是有好处的,但更好地是能有一套工具可以根据项目需要生成一个完整HTML 5 Polyfill库的子集。这样,开发人员就可以混合和匹配不同来源的Web组件和库,如X-Tag的<x-foo>和Polymer的<core-bar>。关于如何获取这些自定义元素,感兴趣的读者可以查看Brick的GitHub页面X-Tag下载页面。Joe指出,这并不是说创建自定义元素就需要创建自定义的打包器,那不是一个具有可扩展性的思路,而是说需要改变开源方式,一个Widget可以不是一个项目,一种更加轻量级的、类似Gist的共享方式可能更合适。在这方面,项目Asset Graph也许是个不错的开端。所以,他认为,现在需要三样东西:

  1. 构建可重用组件的习惯做法和指南;
  2. 可以遵循这些习惯做法编译HTML、CSS和JS的工具;
  3. 可扩展的HTML 5 Polyfill,可以根据需要进行裁剪。

按照Joe的观点,将来,开发人员不再需要学习最新的框架,只需要引入能够满足特定需求的自定义元素或库来构建他们的应用。

时间: 2024-10-14 10:56:09

不需要更多JS框架了的相关文章

简单的JS框架

一 Yui-ext 基于Yahoo UI的扩展包yui-ext是具有cs风格的web用户界面组件,能实现复杂的Layou布局,界面效果可以和backbase比美,而且使用纯JavaScript代码开发.真正的可编辑的表格edit Grid,支持XML和Json数据类型.许多组件实现了对数据源的支持,如动态布局,动态加载Tree控件,动态拖拽效果等等.从1..0beta版开始同jQuery合作,推出基于jQuery的ext1.0,提供了更多有趣的功能. 优点:结构化,清晰明了,底层用到了jQuer

借鉴一些关于js框架的东西

八款Js框架介绍及比较,Dojo .Scriptaculous .Prototype .yui-ext .Jquery .Mochikit.mootools .moo.fx,componentartui (转载) Extjs 与 JQuery 1.Turbomail(www.turbomail.org)下一版本决定用Extjs + jquery 开发.2.JQuery 提供了方便的对网页元素操作方法,但不提供基本控件,如:Tab,Grid,Muen 等,Extjs 是一套   完整的控件库,Ex

JS框架比较

目前来看,JS框架以及一些开发包和库类有如下几个,Dojo .Scriptaculous .Prototype .yui-ext .Jquery .Mochikit.mootools .moo.fx Dojo (JS library and UI component ):Dojo是目前最为强大的j s框架,它在自己的Wiki上给自己下了一个定义,dojo是一个用JavaScript编写的开源的DHTML工具箱.dojo很想做一个“大一统”的 工具箱,不仅仅是浏览器层面的,野心还是很大的.Dojo

不要再使用JS框架了

原文:No more JS Frameworks byJoe Gregorio 停止编写Javascript框架吧. Javascript框架就好像死亡和税收一样:终究不可避免它的存在.我确信如果我是那面墙上的一只苍蝇,每次有人开始一个新的网页项目时,第一个问题肯定是我们用的是哪个JS框架?这就是当今业内对JS框架的根深蒂固的思维模式.但事实上并不需要如此,相反的,需要停止使用JS框架. 我们来看看我们都有些什么. Angular.Backbone和Ember,哎哟妈呀 很长一段时间内网页平台.

JS框架

s框架就是将常用的方法进行封装,方便调取使用.一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计.协作构件之间的依赖关系.责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系.因此构件库的大规模重用也需要框架.js框架就是对js各种功能的封装和抽象,使得在使用的时候具有简便性和更好的兼容性,并且可以扩展框架中的内容.因为直接用js会有兼容性问题,js框架一般预处理了很多兼容性问题,实现了很多常用操作,减少工作量,当然使用

8款JS框架比较

Dojo     Dojo 是目前最为强大的JS框架,它在自己的 Wiki 上给自己下了一个定义,Dojo 是一个用 JavaScript 编写的开源的DHTML工具箱.Dojo 很想做一个“大一统”的工具箱,不仅仅是浏览器层面的,野心还是很大的.Dojo 包括 Ajax.Browser.Event.Widget 等跨浏览器 API,包括了 JS 本身的语言扩展,以及各个方面的工具类库,和比较完善的 UI 组件库,也被广泛应用在很多项目中,他的 UI 组件的特点是通过给 HTML 标签增加 TA

h5棋牌平台制作的js框架选择

h5棋牌平台制作的js框架选择(aqiulian.com/h5)本文主要选取了Construct2.ImactJS.LimeJS.GameMaker.CreateJS.lycheeJS.Crafty.three.js.melonJS.Turbulenz.Quintus.Cocos2d-html5等进行了简要介绍和对比,想知道或者了解更多详细的框架企鹅我212303635. 主流框架对比 Construct2 Construct 2是一个运行于Windows平台的游戏制作工具,它可以让没有任何编程

使用express.js框架一步步实现基本应用以及构建可扩展的web应用

最近过年在家有点懈怠,但是自己也不断在学习新的前端技术,在家琢磨了express.js的web框架. 框架的作用就是提高开发效率,快速产出结果.即使不使用框架,我们也会在开发过程中逐渐形成构成框架. 大多数的node.js项目中都会用到express.js 目录: 一.什么是express.js框架 二.express.js是怎么工作的 三.expres.js的安装 四.express.js的脚手架 五.express.js的helloworld基本应用 一.什么是express.js框架? E

js框架(jQuery)

 Js框架(jQuery) 在前端的学习中,我学习了两种js框架. 有传统的js框架:jQuery,jQuery从创建开始历经了十年的优化和改进,已经是非常成熟和得到了大多数前端的人员的使用,所有jQuery是我们必须掌握的. 也有比较新型的js框架:Angular-js,Angular-js的思想比较新颖,方法也跟jQuery完全不同,历经了5年的建设,Angular-js也开始流行,现在也有很多人开始运用. jQuery: jQuery从根本来说是javaScript的函数库,它封装各种方法