[javascript] angular-route和angular-ui-router有什么区别?


6 Answers

ngRoute是由AngularJS团队开发的一个模块,AngularJS团队是AngularJS核心的早期部分。

ui-router是一个在AngularJS项目之外制定的框架,用于改进和增强路由功能。

从ui-router ui-router

AngularUI Router是AngularJS的一个路由框架,它允许你将界面的各个部分组织成一个状态机。 与围绕URL路由组织的Angular核心中的$ route服务不同,UI-Router是围绕各个状态组织的,这些状态可以选择附加路由以及其他行为。

各国必须使用命名,嵌套和并行视图,使您能够有效地管理应用程序的界面。

他们都不是更好,你将不得不选择最适合你的项目。

但是,如果您计划在应用程序中拥有复杂的视图,并且想要处理“$状态”概念。 我建议你选择ui-router。

Question

我正计划在我的大型应用程序中使用AngularJS。 所以我正在找出正确的模块来使用。

ngRoute(angular-route.js)ui-router(angular-ui-router.js)模块有什么区别

在使用ngRoute的许多文章中,路由配置为$ routeProvider 。 但是,使用ui-router时 ,路由配置为$ stateProvider和$ urlRouterProvider

我应该使用哪个模块以获得更好的可管理性和可扩展性?




通常,ui路由器在状态机制上工作......可以通过一个简单的例子来理解:

比方说,我们有一个音乐库的大应用程序(如..gaana或saavan或其他)。 在页面的底部,你有一个音乐播放器可以在页面的所有状态中共享。

现在让我们假设你只需点击一些歌曲即可播放。 在这种情况下,只有该音乐播放器状态应该改变,而不是重新加载整个页面。 这可以通过ui-router轻松处理。

在ngRoute中,我们只是附加视图和控制器。




ngRoute是由Angular团队构建的模块,提供基本的客户端路由功能。 这个模块为路由提供了一个相当强大的基础,并且可以很容易地构建,以提供可靠的路由功能,如本博客文章中所示 (请务必阅读Ward Bell和Ben Nadel之间的评论,作者 - 他们是几个角利)

ui-router将焦点从以URL为中心的路线转移到应用程序“状态”,这可能会或可能不会反映在url中。

ui-router添加的主要功能是嵌套状态和命名视图。

嵌套状态允许您为应用程序的各个部分分离控制器逻辑。 一个非常简单的例子就是一个应用程序,其顶部为主导航,左侧为辅助导航列表,右侧为内容。 没有嵌套状态,单个控制器通常必须处理辅助导航的显示逻辑以及内容。 嵌套路由允许您分离这些问题。

命名的视图是UI路由器的另一个附加功能。 使用ngRoute,您只能在页面上使用单个ngView指令,而在ui-router中使用命名视图可以指定多个ui-view指令,然后每个状态都能够影响名称视图的模板和控制器。 一个非常简单的例子就是将应用程序的主要内容作为主视图,然后再创建一个可以作为单独UI视图的页脚栏。 在这种情况下,页脚的控制器不再需要侦听状态/路由更改。

这个podcast插曲中可以找到ngRoute和ui-router的比较。

为了让事情更加令人困惑,请关注Angular团队预计将为Angular版本1.5和2.0发布的新“官方”路由模块。 这将取代ngRoute模块。 Here是新的路由器模块的当前文档 - 由于实现尚未最终确定,因此在本文中相当稀少。 here观看关于这个模块何时会被发布的更多消息。




AngularUI Router是AngularJS的一个路由框架,它允许你将界面的各个部分组织成一个状态机。 与围绕URL路由组织的Angular ngRoute模块中的$ route服务不同,UI-Router是围绕状态组织的,这些状态可以选择附加路由以及其他行为。

ui-router




基本的东西你必须知道:ng-router使用$location.path()和ui-router使用$state.go

休息我们的所有功能。







1- ngRoute由角色团队开发,而ui-router是第三方模块。 2- ngRoute基于路由URL实现路由,而ui-router实现基于应用状态的路由。 3- ui-router提供ng路由提供的所有内容,以及一些附加功能,如嵌套状态和多个命名视图。




Related