让Backbone.js应用程序成为单页应用程序是否更好?

让Backbone.js应用程序成为单页应用程序是否更好?,backbone.js,backbone-routing,Backbone.js,Backbone Routing,由于主干网的路由器只与“#”一起工作,这意味着它应该在同一页中。一个BB应用程序应该只在一个页面上,并且只有一个路由器吗?主干网的许多优点之一是,它对您如何使用它非常不关心。例如,如果您只想使用视图,则可以这样做;如果您只想使用模型,也可以这样做 主干应用程序可以是一个单页应用程序,如果这是您的目标,它当然提供了许多功能,使之更容易实现,但不一定非得如此。用手显式调用视图而不是使用路由器绝对没有错 要回答你问题的第二部分。。。不,你可以有任意多的路由器。然而,我要说的是,有很大一部分主干应用程序

由于主干网的路由器只与“#”一起工作,这意味着它应该在同一页中。一个BB应用程序应该只在一个页面上,并且只有一个路由器吗?

主干网的许多优点之一是,它对您如何使用它非常不关心。例如,如果您只想使用视图,则可以这样做;如果您只想使用模型,也可以这样做

主干应用程序可以是一个单页应用程序,如果这是您的目标,它当然提供了许多功能,使之更容易实现,但不一定非得如此。用手显式调用视图而不是使用路由器绝对没有错

要回答你问题的第二部分。。。不,你可以有任意多的路由器。然而,我要说的是,有很大一部分主干应用程序只需要一个。我正在开发一款拥有上百种不同视图的主干应用程序,我从未遇到过需要引入辅助路由器的问题

最后,对你的观点进行一点修正;只要浏览器具有pushState功能,
路由器
对象实际上不再强制使用“#”。如果有必要,较旧的浏览器(主要是IE)将回退到hashtag方法


希望这有帮助

这很有帮助,谢谢!但是,如果它不使用“#”,它会使用什么呢?只是一个普通的url模式?例如:domain.com/category.html/hardware/keyboard。在本例中,它的根是domain.com/category.html?这完全正确。最常见的是,人们在使用这些东西时,通常甚至不在URL中包含“.html”。因此,按照您的示例,您只需使用“domain.com/category/hardware/keyboard”就可以了!所以如果定义路由,主干网是否会自动使用
/foo
?宾果。您可以在路由器中定义所需的路由,然后这些路由对您可用。