有人告诉我,诸如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 的框架。 , Backbone或Ember .
关于javascript - 前端js框架可以用于非单页应用程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21381833/