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

ngRoute (angular-route.js)和ui-router (angular-ui-router.js)模块之间的区别是什么?

在许多文章中,当使用ngRoute时,route是用$routeProvider配置的。然而,当与ui-router一起使用时,route使用$stateProvider和$urlRouterProvider配置。

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


当前回答

你必须知道的基本事情:ng-router使用$location.path(), ui-router使用$state.go

让我们休息一下。

其他回答

通常ui-router工作在一个状态机制…可以用一个简单的例子来理解:

假设我们有一个大的音乐库应用程序(比如..Gaana或saavan或任何其他)。在页面的底部,你有一个音乐播放器在页面的所有状态下共享。

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

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

ng-View(由AngularJS团队开发)每个页面只能使用一次,而ui-View(第三方模块)每个页面可以使用多次。

ui-View因此是最好的选择。

ngRoute是一个适用于基本场景的angular核心模块。我相信他们会在即将发布的版本中添加更强大的功能。

URL: https://docs.angularjs.org/api/ngRoute

Ui-router是一个独立的模块,它克服了ngRoute的问题。主要是嵌套/复杂视图。

URL: https://github.com/angular-ui/ui-router

ui-router和ngRoute之间的一些区别

http://www.amasik.com/angularjs-ngroute-vs-ui-router/

如果你想使用ngRoute范例中实现的嵌套视图功能,可以尝试angular-route-segment -它旨在扩展ngRoute,而不是取代它。

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

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

来自ui-router文档:

AngularUI路由器是AngularJS的路由框架,它允许 您可以将接口的各个部分组织到状态机中。 不像Angular核心中的$route服务,它是围绕 URL路由,UI-Router是围绕状态组织的,这可能是可选的 附加路由和其他行为。 状态被绑定到命名的,嵌套的和并行的视图,允许您 强大地管理应用程序的界面。

它们都不是更好的,你必须选择最适合你的项目。

但是,如果您计划在应用程序中使用复杂的视图,并且希望处理“$state”概念。我建议你选择ui-router。