一般情報
NGRX ルートr ドキュメント
ngrx ルーターは非推奨です! ngrx ルーターから標準の Angular2 ルーターへの移行戦略があります。
Angular2 ルーターの ドキュメント
- Angular チームのデフォルト ソリューション
- AngularJS の UI-router に触発されました
- コンポーネント用に構築
Angular2 ルーターには、ほとんどすべての UI ルーター機能があります。
NG2 UI ルーターの ドキュメント
Angular2 用に更新された AngularJS の有名な UI ルーター。既知の利点から - AngularJS UI-router から ng2 UI-router へのスムーズな更新を行います。
比較する
UI-router の両方のバージョンの構文を Angular2 Router と比較してみましょう。
AngularJS UI-router :
app.config(function($stateProvider){
$stateProvider.state('home', {
url: '/home',
templateUrl: 'home.html',
controller: 'HomeCtrl'
})
});
Angular2 UI-router :
export let state1: Ng2StateDeclaration = {
name: 'home',
component: HomeComponent,
url: '/home'
}
@NgModule({
imports: [
SharedModule,
UIRouterModule.forChild({ states: [home] })
],
declarations: [HomeComponent]
})
export class MyModule {}
Angular2 ルーター:
(更新:プロパティ - name
V3-alpha7 の後に削除されました。ルートの遅延読み込みではうまくいかなかったためです。)
import {
RouteConfig,
Route
} from 'angular2/router';
import {HomeComponent} from './components/home';
@Component({})
@RouteConfig([
new Route({
path: '/home',
component: HomeComponent,
name: 'Home' // Deprecated property, works until v3-alpha7
})
])
export class App {...}
ご覧のとおり、一般的に、Angular2 Router はほとんど同じです。さらに、ルートを介した静的/動的データ共有、ネストされたビューなどの一般的な機能のほとんどをサポートしていると言う必要があります。
- 同じロケーション戦略 (パスとハッシュ)
- 同様のルート定義
- 同様のサービス:
- $state.go と Router.navigate
- $stateParams と RouteParams
- $state.current.data と RouteData
- 類似のディレクティブ
- ui-view と router-outlet
- ui-sref と routerLink
結論
Angular2 ルーターは、UI ルーターの経験を最大限に活用して実装しました。AngularJS UI-router を使用してコード ベースを Angular2 にすばやくスムーズに移行する必要がある場合は、Ng2 UI-router を試すことができます。それ以外の場合は、Angular2 Router が最適だと思います。NG2 UI-router を使用することに決めた場合でも、すべての長所と短所を確認してください。現時点では、コミュニティは Angular チームから標準的なソリューションを選択することになると思います。つまり、より良いサポートを意味します。