AngularJS:angular-route与angular-ui-route的区别

StackOverflow地址

http://stackoverflow.com/questions/21023763/angularjs-difference-between-angular-route-and-angular-ui-router

问题描述

楼主是AngularJS的新手。我觉得Angular有点意思所以准备在我的一个大项目中使用一下。我正在寻找合适的模块。
请问ngRoute(angular-route.js)与ui-route(angular-ui-router.js)这两个模块具体有什么区别。
在许多介绍文章中,当使用了ngRoute时,route被配置为$routeProvider。当使用ui-route时,route被配置为$stateProviderurlRouterProvider
这让我觉得有点不能理解。哪个模块在管理功能和扩展性上更好呢?

最佳解答

ui-router是一个第三方组件。它十分强大。它支持ngRoute的所有特性且不止于此。
下面是一些使用ui-router替换掉ngRoute的理由:

  • ui-route支持view嵌套多命名视图。这在大型APP中非常有用,因为可能会出现继承其他段落的页面。
  • ui-route可以让你在基于状态名称的状态间进行强类型连接。在一处替换url会在其余定义了相同的ui-sref的地方进行同步更新。如果你要在大型APP中变更超链接,这会非常有用。
  • 它还具备装饰器的概念。可以用来允许根据尝试访问的URL动态创建路由。这意味着你不需要手动指定所有路由。
  • states可以让你映射和访问不同状态的不同信息,你可以通过$stateParams轻松地在状态之间传递信息。
  • 你可以很方便的通过在带有$state(由ui-route提供)的模板中确认当前是否出于某个状态或父状态来调整UI元素(高亮当前状态的导航栏)。可以通过设置$rootScope在执行中暴露它。
  • 本质上,ui-routengRouter的增强版,但是背后的实现不尽相同。这些增强的功能在大型应用中非常实用。

更多信息: