提问者:小点点

angular-route和Angular-UI-Router有什么区别?


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

ngRoute(Angular-Route.js)和ui-router(Angular-UI-Router.js)模块之间有什么区别?

在使用ngRoute的许多文章中,route是用$routeProvider配置的。但是,当与ui-router一起使用时,route将使用$StateProvider和$URLRouterProvider配置。

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


共2个答案

匿名用户

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,在表单下它有很大的不同。这些附加特性对于较大的应用程序非常有用。

    更多信息:

    • github:https://github.com/angular-ui/ui-router
    • 文档:
      • API参考:http://angular-ui.github.io/ui-router/site/#/api
      • 指南:https://github.com/angular-ui/ui-router/wiki

  • 匿名用户

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

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

    在ui-router文档中:

    AngularUI路由器是AngularJS的路由框架,它允许您将接口的各个部分组织到一个状态机中。与Angular core中围绕URL路由组织的$route服务不同,UI-Router围绕状态组织,状态可能有附加的路由和其他行为。

    状态绑定到命名、嵌套和并行视图,允许您强大地管理应用程序的接口。

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

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