我正计划在我的大型应用程序中使用AngularJS。所以我正在寻找合适的模块来使用。
ngRoute(Angular-Route.js)和ui-router(Angular-UI-Router.js)模块之间有什么区别?
在使用ngRoute的许多文章中,route是用$routeProvider配置的。但是,当与ui-router一起使用时,route将使用$StateProvider和$URLRouterProvider配置。
我应该使用哪个模块来获得更好的可管理性和可扩展性?
ui-router是第三方模块,功能非常强大。它支持普通ngRoute所能做的一切,以及许多额外的功能。
以下是选择ui-router而不是ngroute的一些常见原因:
>
UI-Router允许嵌套视图和多个命名视图。这对于较大的应用程序非常有用,因为在这些应用程序中,您可能会有从其他部分继承的页面。
ui-router允许您根据状态名称在状态之间进行强类型链接。当您使用ui-sref
构建链接时,在一个地方更改url会将每个链接更新到该状态。对于URL可能更改的大型项目非常有用。
还有装饰器的概念,它可以用于允许您的路由基于试图访问的URL动态创建。这可能意味着您不需要预先指定所有的路由。
状态允许您映射和访问关于不同状态的不同信息,并且可以通过$stateparams
轻松地在状态之间传递信息。
通过ui-router提供的$state
,您可以通过在run
上的$rootscope
中设置它来公开模板中的UI元素(突出显示当前状态的导航),您可以轻松地确定您是否处于状态或状态的父状态。
从本质上讲,ui-router是一个具有更多特性的ngRouter,在表单下它有很大的不同。这些附加特性对于较大的应用程序非常有用。
更多信息:
ngRoute是由AngularJS团队开发的模块,它是AngularJS核心的早期部分。
ui-router是在AngularJS项目之外制作的一个框架,用于改进和增强路由功能。
在ui-router文档中:
AngularUI路由器是AngularJS的路由框架,它允许您将接口的各个部分组织到一个状态机中。与Angular core中围绕URL路由组织的$route服务不同,UI-Router围绕状态组织,状态可能有附加的路由和其他行为。
状态绑定到命名、嵌套和并行视图,允许您强大地管理应用程序的接口。
两者都不是更好的,你将不得不选择最适合你的项目。
但是,如果您计划在应用程序中拥有复杂的视图,并且希望处理“$state”概念。我建议您选择UI-Router。