javascript - 供迷恋 Flex 开发人员使用的 HTML5 框架

标签 javascript html css

<分区>

多年来,我一直从事 flex 开发人员的工作,构建了非常复杂的应用程序。由于最近的炒作,我对学习 HTML5 很感兴趣。

我喜欢 Flex 框架的一点是它是一个用于构建 RIA 的一致、连贯、完整的堆栈。我喜欢它有大量开箱即用的组件,以及一个用于扩展和构建非常复杂、高度定制和蒙皮组件的框架。

HTML5 领域是否有类似的框架?

从我所做的搜索中,我发现那里有大量有用的 .js 脚本,它们提供了漂亮的组件、效果等。但是,我一直无法找到可靠的js 框架,具有成熟的架构组件库。

这让我担心,在构建复杂的应用程序时,我可能最终会编写大量管道代码来将不同的组件连接在一起。

我知道 HTML5 仍处于起步阶段,所以如果有我应该关注的有前途的框架,我想了解它们。

我的理想框架要求购物 list 如下:

  • 可靠的组件架构(包括生命周期事件)
  • 可扩展
  • 布局经理
  • 与浏览器无关
  • 支持数据绑定(bind)
  • 支持复杂的蒙皮
  • 服务层和协议(protocol)的抽象(即 SOAP/JSON/XML 服务都是一种类型的 IRemoteService)

连同 UI 框架本身,Javascript 空间中存在哪些框架

  • MVC 架构。 (类似于 Parsley,或 Flex 世界中的 Maté)
  • 依赖注入(inject)
  • 单元测试

最佳答案

如果您是 Flex 开发人员,那么可能有兴趣查看 Sencha Frameworks(我的公司)的桌面和移动版本:用于桌面应用程序的 Ext JS 和用于移动/平板电脑应用程序的 Sencha Touch。

Ext JS 专注于桌面网络应用程序,可以一直运行到 IE6,因此没有太多空间可以成为“HTML5”,尽管我们可以做到这一点(我们的新图表使用 Canvas、SVG 或 VML,具体取决于在浏览器上它发现自己)。

Sencha Touch 专注于 Android、iOS、Blackberry 和 IE9(?) 移动浏览器,因此我们可以使用所有 CSS3、localStorage 等您可以摇一摇的东西。如果您正在寻找一个测试用例,以了解当您开始假设使用现代浏览器时可以做什么,那么就是这样。

Ext JS 和 Sencha Touch 一直是组件。组件和布局的最佳概述是 this article这是为 Ext JS 2 编写的,尽管 Ext JS 3 的组件和布局模型没有太大变化。布局正在为 Ext JS 4 重写——本月将有第一个测试版——使它们更像 CSS3 flex 盒布局系统。

可扩展性是拥有适当组件模型的产物。 Ext JS 有一堆可以混合和匹配的用户扩展组件。专业售后市场组件的一个很好的例子是 Ext Scheduler.还有一个 good tutorial on how to create components .

数据绑定(bind):UI 组件绑定(bind)到存储,因此多个 UI 元素会随着新数据的变化而更新。您可以阅读 store API reference了解它是如何工作的。

复杂的皮肤 - Sencha Touch 有一个 excellent theming system正在移植到 Ext JS 4 - 但 Ext JS 3 和 2 由于 IE6 兼容性要求(您必须生成图像)而更多地涉及主题<​​/p>

服务层被抽象为 data proxy, which is extended for JSON, Http, XML etc .

Sencha Touch 和 Ext JS 4 具有(简单的)MVC 架构。 Ext JS 3 及以下版本没有。

这是 a good write-up on dependency injection in Ext JS (但它应该概括为 Touch)

对于单元测试,我们推荐 Jasmine - 它出自 Pivotal Labs。

Ext JS 和 Sencha Touch 的使用相当广泛 - Ext JS 主要用于企业应用程序,但也有许多大公司使用它,如 Salesforce、Marketo 等,以供外部用户使用。 Sencha Touch 有 a nice gallery of apps from our latest dev contest , 你应该检查一下。

如果您关心工具,我们还有一个 GUI 拖放设计器和一个 CSS3 动画工具(后者在开发人员预览中)

关于javascript - 供迷恋 Flex 开发人员使用的 HTML5 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4606394/

相关文章:

HTML/CSS 图像缩略图翻转

html - 如何使背景图像覆盖大小

javascript - 如何使用 Bacon.js 返回 ajax 响应对象?

javascript - Angular JS : rest API is called with a delay

html - 并排显示两个部分

javascript - 如何使用多个属性选择器但针对特定属性值?

javascript - 在提交之前验证表单数据,并基于验证使用 javascript 调用另一个函数

javascript - 如何访问从子类型调用的父类(super class)型中的js事件对象?

javascript - 使用 asp.net 验证控件时禁用回发按钮

javascript - 决策树交互风格前端