ngRoute和ui-router的区别是什么
ngRoute: ngRoute是AngularJS团队开发的一个模块,是AngularJS核心的一部分。这是一个模块,这样可以更好地管理基本场景,减少复杂性,处理得更好。
ui-router: ui-router是一个框架,它是在AngularJS项目之外制作的,用于增强和改善路由功能。这是一个框架,所以它将帮助你组织你的项目的部分界面
两者都有独特的功能,在它们之间选择取决于你的项目。你必须知道哪一个对你的工作项目更有用,下面提供了两者的特点,这将清除你的想法,你应该为你的项目选择哪一个。
ngRoute | ui-router |
---|---|
ngRoutr适用于较小的应用程序,你不需要从其他部分继承页面。 | ui-router对大型应用很有效,因为它允许嵌套视图和多个命名视图,它有助于从其他部分继承页面。 |
在ngRoute中,必须手动改变所有的链接,这对大型应用来说很耗时,但小型应用nrRoute会执行得更快。 | 在ui-router中,它允许状态间的强类型链接,所以如果你改变任何一个地方的链接,就会改变所有地方的链接。这必须由ui-sref使用。 |
ngRoute的路由器提供者 $routeProvider | ngRoute的路由器提供者 urlRouterProvide。 |
ngRoute的模板视图是ng-view,比ui-view更好。 | ui-router的模板视图ui-view对于从其他部分继承的多页面来说非常强大。 |
你不能确定你是否处于状态。 | 你可以通过ui-router提供的$state轻松确定你是否处于某个状态或某个状态的父级,以调整你模板中的UI元素,你可以通过在运行时在$rootScope中设置它来公开。 |
ngRoute $routeChangeStart的路由器启动事件 | ngRoute $stateChangeStart的路由器启动事件。 |
在ngRoute中获取Params作为服务 route.current.params.id 和 routeParams.id | 在ui-router中获取Params作为服务 state.params.id 和 stateParams.id |
围绕URL路由组织的ngRoute。 | 围绕状态路由组织的ui-router。 |
结论:它们在各自的领域都表现得更好,在它们之间的选择取决于你的项目。如果你的项目应用包含复杂的视图,我会选择ui-router而不是ng-Route,否则还有很多其他的功能可以帮助你以一种方式建立你的项目。如果你的项目包含不太复杂的视图,你可以自由选择。