StackOverflow地址
问题描述
楼主是AngularJS的新手。我觉得Angular有点意思所以准备在我的一个大项目中使用一下。我正在寻找合适的模块。
请问ngRoute
(angular-route.js)与ui-route
(angular-ui-router.js)这两个模块具体有什么区别。
在许多介绍文章中,当使用了ngRoute
时,route被配置为$routeProvider
。当使用ui-route
时,route被配置为$stateProvider
和urlRouterProvider
。
这让我觉得有点不能理解。哪个模块在管理功能和扩展性上更好呢?
最佳解答
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-route
是ngRouter
的增强版,但是背后的实现不尽相同。这些增强的功能在大型应用中非常实用。
更多信息: