哪个是使用$ routeProvider或在angularjs中使用$ stateProvider的最佳实践?

时间:2016-03-23 13:02:26

标签: angularjs angularjs-provider

我正在使用angularjs和nodejs构建小应用程序,我想知道$ stateprovider和$ routeProvider的最佳用例。

请帮忙

3 个答案:

答案 0 :(得分:1)

Angular自己的ng-Router在路由时会考虑URL,UI-Router除了URL之外还会获取状态。

  

状态绑定到命名,嵌套和并行视图,允许您有力地管理应用程序的界面。

在ng-router中,你必须在通过标签提供链接时非常小心URL,在UI-Router中你必须记住状态。你提供像这样的链接。请注意,即使您在UI-Router中使用,就像在ng-router中一样,它仍然有效。

因此,即使您决定某天更改网址,您的状态仍将保持不变,您只需在.config更改网址。

虽然ngRouter可以用来制作简单的应用程序,但UI-Router可以让复杂的应用程序更容易开发。

答案 1 :(得分:1)

当您希望应用程序具有不同的状态时使用

$stateprovider,例如,如果您希望jst一小部分屏幕有时加载而不是整个屏幕,则转到State提供程序和{{ 1}}。特殊情况下,如果你有一个 Sliding Drawer 类型的实现,你有一个带有按钮的正确菜单,可以加载不同的子屏幕。

$state.go(url)是常用的。大多数情况下,您希望更改整个屏幕并将其重定向到新屏幕。

注意
使用$routeProider重定向屏幕时,屏幕的真实链接不会改变。它只会改变状态而不是页面的URL

答案 2 :(得分:0)

不要混淆问题,但AngularJS 1.5中有一个新选项:ComponentRouter

此路由器与uiRouter($ stateProvider)一起为您提供比遗留ngRouter($ routeProvider)更大的灵活性。如果您迁移到Angular2,ComponentRouter和uiRouter都有未来。

那说,这取决于你的需求。您可能不需要ComponentRouter和uiRouter提供的可组合和嵌套视图 - 而只需要简单的路由。