我正在使用 angularjs 和 nodejs 构建小型应用程序,我想知道 $stateprovider 和 $routeProvider 的最佳用例是什么。
请帮忙
我正在使用 angularjs 和 nodejs 构建小型应用程序,我想知道 $stateprovider 和 $routeProvider 的最佳用例是什么。
请帮忙
Angular 自己的 ng-Router 在路由时会考虑 URL,UI-Router 会在 URL 之外考虑状态。
状态绑定到命名的、嵌套的和并行的视图,使您能够强大地管理应用程序的界面。
在 ng-router 中,通过标签提供链接时,您必须非常小心 URL,而在 UI-Router 中,您只需牢记状态。您提供的链接如 . 请注意,即使您在 UI-Router 中使用,就像在 ng-router 中一样,它仍然可以工作。
因此,即使您决定某天更改您的 URL,您的状态也将保持不变,您只需在 .config 中更改 URL。
虽然 ngRouter 可用于制作简单的应用程序,但 UI-Router 使复杂应用程序的开发更加容易。
$stateprovider
当您希望应用程序具有不同的状态时使用,例如如果您希望有时加载屏幕的一小部分而不是整个屏幕,go for State 提供程序和$state.go(url)
. 特殊情况下,您有一个滑动抽屉式的实现,其中您有一个带有按钮的右侧菜单,这些按钮可以加载不同的子屏幕。
$routeProider
是常用的。大多数情况下,当您希望更改整个屏幕并将其重定向到新屏幕时。
注意
使用$state.go(url);
重定向屏幕时,屏幕的真实链接不会改变。它只会改变状态而不是页面的url
不要混淆这个问题,但是 AngularJS 1.5 中有一个新选项:ComponentRouter
此路由器与uiRouter
($stateProvider) 一起为您提供比传统ngRouter
($routeProvider) 更大的灵活性。如果您迁移到 Angular2,ComponentRouter 和 uiRouter 都有未来。
也就是说,这取决于您的需求。您可能不需要 ComponentRouter 和 uiRouter 提供的可组合和嵌套视图,而只需要简单的路由。