gpt4 book ai didi

用于构建单页应用程序的 JavaScript 框架

转载 作者:IT王子 更新时间:2023-10-29 02:41:50 25 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.


8年前关闭。







Improve this question




我的目标是将现有的 Web 应用程序迁移到 RESTful single page application (温泉)。
目前,我正在评估几个 Javascript Web 应用程序框架。

我的要求如下:

  • RESTful 数据层(如 ember-data)
  • MV*-结构
  • 动态路由
  • 测试支持
  • 按惯例编码
  • SEO支持
  • 浏览器历史支持
  • 良好的 (API-) 文档
  • 生产就绪
  • 生活社区


  • Backbone

    当前应用程序正在使用 backbone.js .总体而言, backbone.js是一个不错的项目,但我缺少定义明确的结构,这些结构确定了必须在哪里发生以及必须如何实现。在一个更大的团队中与不断变化的开发人员一起工作,这会导致某种非结构化代码,难以维护和理解。这就是为什么我现在正在寻找一个已经定义了所有这些东西的框架。

    Ember

    我查看了 ember.js最后几天。这种方法对我来说似乎很有希望。但是,不幸的是,代码几乎每天都在变化。所以,我不会称之为生产就绪。而且,不幸的是,我们不能等待它成为 1.0 版。但我真的很喜欢这个框架背后的想法。

    Angular
    Angular.js也是一个广泛传播的框架,由 Google 维护。但我无法熟悉 Angular 。对我来说,结构似乎有点不清楚,缺少对框架每个部分的总体职责的解释,并且实现感觉很迂回。
    直截了本地说:这只是我个人的印象,可能是基于缺少的知识。

    BatmanMeteor

    据我了解,这两个框架都需要一个服务器部分。而且由于我们只想要一个 RESTful 后端——无论是什么语言、技术或软件,这都不是我们想要的。此外,后端 API 确实已经存在 (RoR)。

    Knockout , CanJSSpine

    我没有深入研究这三个候选人。也许这将是我的下一步。

    所以我现在的问题:
  • 我是否缺少任何好的 SPA 框架?
  • 你会建议/推荐什么框架?
  • 你会避免任何提到的框架吗?
  • 您在更大的 SP 应用中有何经验?


  • PS:我想推荐一个 great blogpost来自 Steven Anderson(来自 Knockout.js 的核心开发人员)关于“JS 王座” session (从 2012 年开始)和一般的 javascript 框架。

    PS:是的,我知道已经有一些关于 SO 的问题。但由于 SPA 的发展如此迅速和迅速,其中大多数已经过时。

    最佳答案

    我最近也不得不决定在一个项目中使用 JavaScript SPA 框架。

  • Ember

    很早就看过 Ember 并且对它有类似的想法 - 我真的很喜欢它,但感觉使用它还为时过早......我读过的大约一半的教程不适用于当前版本,因为最近有一些东西模板的工作方式发生了变化。
  • Backbone

    Backbone 是我们认真研究的第一个框架。我不确定我是否理解您为什么认为它没有“定义明确的结构”? Backbone 非常清楚如何划分模型和 View 代码。也许你的意思是没有某种应用程序模板?无论如何,Backbone 似乎真的专注于模型/REST 绑定(bind)部分,但并没有真正为 View 绑定(bind)规定任何内容。如果模型绑定(bind)对您很重要并且您正在使用 Rails,那么这样做应该很容易。不幸的是,我的应用程序的 Web 服务并没有真正匹配,我不得不自己编写 .sync.parse一切的方法。模型和 View 代码的分离很好,但是因为我们必须从头开始编写所有绑定(bind),所以不值得。
  • Knockout

    淘汰赛就像阴到 Backbone 的阳。 Backbone 专注于模型,而 Knockout 是一个 MVVM 框架,专注于 View 。它有 observable JavaScript 对象属性的包装器并使用 data-bind属性将属性绑定(bind)到您的 HTML。最后我们选择了 Knockout,因为 View 绑定(bind)主要是我们的应用程序所需要的。 (...加上其他,稍后讨论...)如果您喜欢 Knockout 的 View 绑定(bind)和 Backbone 的模型绑定(bind),还有 KnockBack它结合了这两个框架。
  • Angular

    在 Knockout 之后查看了这个 - 不幸的是,我们似乎都对 Knockout 如何查看绑定(bind)感到非常满意。它似乎比 Knockout 更复杂,更难进入。它使用一堆自定义 HTML 属性来进行绑定(bind),我不确定我是否喜欢……我稍后可能会再看一下 Angular,因为我遇到过很多人非常喜欢这个框架——也许我们只是看这个项目太晚了。
  • Batman , Meteor , CanJS , Spine

    这些都没有仔细看。虽然我知道 Spine 是一个类似于 Backbone 的具有显式 Controller 对象的框架,并且是用 CoffeeScript 编写的。
  • 后记

    正如我所提到的,我们最终使用了 Knockout,因为对于我们的项目,关注 View 绑定(bind)更为重要。我们最终也使用了 RequireJS用于模块化,crossroadsHasher处理路由和历史,Jasmine用于测试,以及 JQuery , Twitter Bootstrap , 和 Underscore.js (可能还有更多我现在忘记的图书馆)。

    Javascript 应用程序开发更像是 Java 生态系统,而不是 Rails 生态系统。 Rails 为每个应用程序(Rails 框架)提供了一个坚实的核心,并且社区在此基础上提供了许多自定义(gems)。 Java 提供了……一种语言。然后您可以选择 Java EE 或 Spring 或 Play 或 Struts 或 Tapestry。并选择 JDBC 或 Hibernate 或 TopLink 或 Ibatis 与数据库通信。然后你可以使用 Ant 或 Maven 或 Gradle 来构建它。并选择 Tomcat 或 Jetty 或 JBoss 或 WebLogin 来运行它。因此,与选择要使用的框架相比,选择你需要的东西和协同工作的东西更重要。
  • 关于用于构建单页应用程序的 JavaScript 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14336450/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com