javascript - 前端js框架可以用于非单页应用程序吗?

标签 javascript angularjs backbone.js knockout.js

有人告诉我,诸如backbone、angularjs、knout等前端框架仅适用于单页应用程序,因为必须根据散列参数定义路由,并且这些框架触发适当的 Controller /模式/ View 。

我的问题是这些前端框架也可以用于非单页应用程序吗?假设我有这三个页面:

  • index.html
  • about.html
  • contact.html

我在 app.js 中编写了路线代码包含在上述文件中。那么这些框架是否能够确定我们所在的页面并自动触发适当的 Controller (以及其他具有模态的东西,加载适当的 View ),这与基于哈希的单页面应用程序不同?如果可能的话,有人可以提供简单的示例,说明如何使用上述任何框架为上述三个页面定义路由(当然在本例中是非hased)?

感谢您的帮助

最佳答案

正如评论中提到的,没有什么可以阻止您在传统的、每页往返的 Web 应用程序中使用这些框架中的任何一个。话虽这么说,您应该为这项工作选择正确的工具。

免责声明:

我在现实世界的应用程序中广泛使用了 Angular 和 Knockout。我只使用过一点主干,但我更喜欢 Angular 和 Knockout 的声明式风格,而不是主干的命令式风格。

Backbone 和 Angular 确实是为构建单页应用程序而设计和优化的。然而,两者之间存在许多灰色地带。您可以加载“客户”页面并在其中定义一些路由,但是当您导航到“管理” 这可能是整个页面刷新,并且您将在那里定义多个路由。

Knockout 不是 SPA 框架。它不带有路由器,因此不处理 View 的侧面加载。您可以使用 Sammy.js 之类的东西来实现您想要的路由。

如果您不构建 SPA,则不要使用 SPA 框架。

如果我是您,我个人会选择 Knockout,因为您不需要路由器。

但是,如果您计划最终将其构建为 SPA 或混合应用程序,那么请使用类似 Angular 的框架。 , BackboneEmber .

关于javascript - 前端js框架可以用于非单页应用程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21381833/

相关文章:

c# - 序列化包含数组的对象

javascript - Backbone 模型没有默认渲染?需要 Jade 和 Backbone 大师

javascript - 何时指定与主干中的集合/ View 关联的模型

带有 angular-translate 和 ng-pluralize 的 AngularJS 复数

angularjs - 使用 ng-token-auth 检索身份验证状态和当前用户

javascript - CKEditor 新实例总是卸载

javascript - 主干 - 在模型更改时注销 View 事件

javascript - c.apply 不是函数

c# - Javascript 函数适用于 onclick 但不适用于 onfocus

javascript - 高级 URL 的搜索框