canLoad
との違いは何ですかcanActivate
?
export interface Route {
path?: string;
pathMatch?: string;
matcher?: UrlMatcher;
component?: Type<any>;
redirectTo?: string;
outlet?: string;
canActivate?: any[];
canActivateChild?: any[];
canDeactivate?: any[];
canLoad?: any[];
data?: Data;
resolve?: ResolveData;
children?: Routes;
loadChildren?: LoadChildren;
}
どちらをいつ選ぶべきでしょうか?
ベストアンサー1
アクティブ化できる権限のないユーザーが特定のルートにアクセスするのを防ぐために使用されます。ドキュメントを見る詳細については。
ロード可能ユーザーに権限がない場合に、アプリケーションがモジュール全体を遅延ロードするのを防ぐために使用されます。
ドキュメントを見る詳細については以下の例をご覧ください。
{
path: 'admin',
loadChildren: 'app/admin/admin.module#AdminModule',
canLoad: [AuthGuard]
},
このコードでは、AuthGuard が を返す場合にのみ、AdminModule のコードがアプリケーションにロードされますtrue
。
ユーザーがこのルートにアクセスする権限を持たず、ガードのみを使用した場合、ユーザーはそのルートにアクセスできないにもかかわらず、canActivate
がロードされます。AdminModule