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

Javascript 前端js框架可以用于非单页应用程序吗?,javascript,angularjs,backbone.js,knockout.js,Javascript,Angularjs,Backbone.js,Knockout.js,有人告诉我,诸如主干、angularjs、knockout等前端框架只适用于单页应用程序,因为必须基于散列参数定义路由,并且这些框架触发适当的控制器/模态/视图 我的问题是,这些前端框架也可以用于非单页应用程序吗?假设我有这三页: index.html 关于.html contact.html 我在上述文件中包含的app.js中为路由编写了代码。那么,这些框架是否能够找出我们所处的页面,并自动触发相应的控制器(以及其他带有modals的东西,加载适当的视图),而不像基于散列的单页应用程序?若

有人告诉我,诸如主干、angularjs、knockout等前端框架只适用于单页应用程序,因为必须基于散列参数定义路由,并且这些框架触发适当的控制器/模态/视图

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

  • index.html
  • 关于.html
  • contact.html
我在上述文件中包含的
app.js
中为路由编写了代码。那么,这些框架是否能够找出我们所处的页面,并自动触发相应的控制器(以及其他带有modals的东西,加载适当的视图),而不像基于散列的单页应用程序?若可能的话,有人可以给出一个简单的例子,说明如何使用上述框架为上述三个页面定义路由(在本例中为非hased)


感谢您的帮助

这样做是完全可能的


唯一的区别是,每次更改页面时都会重新创建ViewModel,并重新加载数据,但根据应用程序的设计,这与在单页面应用程序中执行的操作没有太大区别。

完全有可能做到这一点


唯一的区别是每次更改页面时都会重新创建ViewModel,并且会重新加载数据,但是,根据应用程序的设计,这与您在单页应用程序中可能执行的操作没有太大区别。

如评论中所述,没有任何东西阻止您在传统的每页往返web应用程序中使用这些框架。也就是说,你应该为这项工作选择合适的工具。

免责声明: 我在现实世界的应用程序中广泛使用了Angular和Knockout。我只使用了一点主干,但我更喜欢棱角分明的陈述式和击倒式,而不是主干命令式

主干网和角网是为构建单页应用程序而设计和优化的。然而,两者之间有许多灰色阴影。您可以加载一个“Customers”页面,并在其中定义一些路由,但当您导航到“Admin”时,这可能是一个总页面刷新,您将在那里定义多个路由

淘汰赛不是SPA框架。它没有路由器,因此不处理视图的侧面加载。您可以使用Sammy.js之类的东西来实现所需的路由

如果您没有建立水疗中心,则不要使用水疗框架。

如果我是你,我个人会选择淘汰赛,因为你不需要路由器


但是,如果您计划最终将其构建到SPA或混合应用程序中,那么请使用诸如或之类的框架。

如评论中所述,没有任何东西可以阻止您在传统的每页往返web应用程序中使用这些框架。也就是说,你应该为这项工作选择合适的工具。

免责声明: 我在现实世界的应用程序中广泛使用了Angular和Knockout。我只使用了一点主干,但我更喜欢棱角分明的陈述式和击倒式,而不是主干命令式

主干网和角网是为构建单页应用程序而设计和优化的。然而,两者之间有许多灰色阴影。您可以加载一个“Customers”页面,并在其中定义一些路由,但当您导航到“Admin”时,这可能是一个总页面刷新,您将在那里定义多个路由

淘汰赛不是SPA框架。它没有路由器,因此不处理视图的侧面加载。您可以使用Sammy.js之类的东西来实现所需的路由

如果您没有建立水疗中心,则不要使用水疗框架。

如果我是你,我个人会选择淘汰赛,因为你不需要路由器


但是,如果您计划最终将其构建到SPA或混合应用程序中,那么可以使用诸如或之类的框架。

在Angular中,您可以执行以下操作来实现这一点:

<html>
   <head>
     <title>index.html</title>
   </head>
   <body ng-app="myApp" ng-controller="indexController">
     <h2>{{title}}</h2>

     <script type="text/javascript">
        (function(app) {

            var indexController($scope) {
                $scope.title = "Index title!";
            };

            app.controller('indexController', ['$scope', indexController]);

        }(angular.module('myApp')));
     </script>    
   </body>
</html>

index.html
{{title}}
(功能(应用程序){
变量索引控制器($scope){
$scope.title=“索引标题!”;
};
app.controller('indexController',['scope',indexController]);
}(angular.module('myApp'));

例如,Knockout并不是一个成熟的SPA框架。如果您想要路由,您将不得不依赖第三方库,即sammy.js

,在Angular中,您可以执行以下操作来实现这一点:

<html>
   <head>
     <title>index.html</title>
   </head>
   <body ng-app="myApp" ng-controller="indexController">
     <h2>{{title}}</h2>

     <script type="text/javascript">
        (function(app) {

            var indexController($scope) {
                $scope.title = "Index title!";
            };

            app.controller('indexController', ['$scope', indexController]);

        }(angular.module('myApp')));
     </script>    
   </body>
</html>

index.html
{{title}}
(功能(应用程序){
变量索引控制器($scope){
$scope.title=“索引标题!”;
};
app.controller('indexController',['scope',indexController]);
}(angular.module('myApp'));

例如,Knockout并不是一个成熟的SPA框架。如果您想要路由,则必须依赖第三方库,即sammy.js

是。没有什么能阻止你用这些框架构建一个传统的应用程序,只是用更强大的客户端交互来“添加”它们。是的。没有什么能阻止你用这些框架构建一个传统的应用程序,而只是用更强大的客户端交互来“增加”它们。谢谢你提供的有用信息:)请注意,如果你在使用Knockout后真的想去SPA,我会看看Durandal,它是一个基于Knockout构建的完整框架。谢谢你的帮助