我打算在我的大型应用程序中使用 AngularJS。所以我正在寻找合适的模块。
ngRoute(angular-route.js)和ui-router(angular-ui-router.js)模块有什么区别 ?
在使用ngRoute 的许多文章中,使用$ routeProvider配置路由。但是,当与ui-router 一起使用时 ,路由配置为$ stateProvider 和 $ urlRouterProvider 。
我应该使用哪个模块来提高可管理性和可扩展性?
ui-router是第三方模块,非常强大。它支持正常 ngRoute 可以执行的所有操作以及许多额外功能。
以下是 ui-router 比 ngRoute 选择的一些常见原因:
ui-router 允许您根据状态名称在状态之间建立强类型链接。当您使用ui-sref
构建链接时,在一个位置更改 URL 将更新指向该状态的每个链接。对于 URL 可能更改的大型项目非常有用。
还有装饰器的概念,可用于允许根据尝试访问的 URL 动态创建路由。这可能意味着您不需要事先指定所有路线。
状态允许您映射和访问有关不同状态的不同信息,您可以通过$stateParams
轻松地在状态之间传递信息。
您可以通过 ui-router 提供的$state
来轻松确定您是处于州或州的状态,以调整模板中的 UI 元素(突出显示当前状态的导航),您可以通过在$rootScope
设置它来公开它run
。
本质上,ui-router 是具有更多功能的 ngRouter,在表单下它是完全不同的。这些附加功能对于大型应用程序非常有用。
更多信息:
ngRoute是由 AngularJS 团队开发的模块,该团队是 AngularJS 核心的早期部分。
ui-router是一个在 AngularJS 项目之外创建的框架,用于改进和增强路由功能。
从 ui-router 文档 :
AngularUI Router 是 AngularJS 的路由框架,它允许您将接口的各个部分组织到状态机中。与围绕 URL 路由组织的 Angular 核心中的 $ route 服务不同,UI-Router 围绕状态进行组织,这些状态可以选择性地具有路由以及附加的其他行为。
状态绑定到命名,嵌套和并行视图,允许您有力地管理应用程序的界面。
它们都不是更好,你必须选择最适合你的项目。
但是,如果您计划在应用程序中使用复杂视图,并且希望处理 “$ state” 概念。我建议你选择 ui-router。
ngRoute 是一个角度核心模块,适用于基本场景。我相信他们会在即将发布的版本中添加更强大的功能。
网址: https : //docs.angularjs.org/api/ngRoute
Ui-router 是一个贡献模块,它克服了 ngRoute 的问题。主要是嵌套 / 复杂视图。
网址: https : //github.com/angular-ui/ui-router
ui-router 和 ngRoute 之间的一些区别