所有这3个库都允许操纵历史对象。好吧,骨干做了很多,但只考虑它的历史部分。
这三种实施有什么区别?
答案 0 :(得分:15)
对于浏览器而言,History.js更像是一个polyfil,它本身不支持HTML5 pushState,并且可以解决pushState的不同浏览器实现之间的差异。
Davis.js是一个路由层,主要在pushState之上(虽然这可以很容易地切换到哈希路由)。它为您提供了一个简单的API来定义和响应应用程序中的路由。
Backbone的路由器与Davis类似,但是当pushState不可用时,它会尝试自动回退到基于散列的路由。
作为戴维斯的作者,我有点偏颇,但我认为戴维斯api比主干更好,更强大。我还认为,当pushState不可用时,试图优雅地处理回退到基于散列的路由是不值得的,它可以引入的努力和复杂性。
答案 1 :(得分:0)
你走了:
这实际上取决于您是否需要额外的Backbone功能,在这种情况下它是一个明显的选择。