angular-standalone について
スタンドアロンコンポーネントで Angular アプリを構築するための開発ガイドです。依存関係の指定、アプリの起動、関数型プロバイダー、ルーティング、遅延読み込み、NgModule からの移行を扱います。
主な機能
- 01スタンドアロンコンポーネントの作成
- 02imports 配列での依存関係指定
- 03bootstrapApplication による起動
- 04関数型プロバイダーとルーティングの設定
- 05スタンドアロンコンポーネントの遅延読み込み
- 06NgModule からの移行
活用シーン
- 01NgModule ベースのコンポーネントを使わない Angular アプリの構築
- 02スタンドアロンアプリのルーティング設定
- 03機能コンポーネントの必要時読み込み
- 04移行スキーマによる既存コンポーネントの変換
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ oguzhan18/ angular-ecosystem-skills --skill angular-standaloneインストール後、Claude Code で/angular-standaloneを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/discussions/_INDEX.mdreferences/docs/_INDEX.mdreferences/issues/_INDEX.mdreferences/releases/_INDEX.md詳細
Angular スタンドアロンコンポーネント
バージョン: Angular 21(2025) タグ: スタンドアロン、コンポーネント、インポート、ブートストラップ
参考資料: スタンドアロンガイド • 移行
API の変更点
このセクションでは、バージョン固有の最近の API の変更点について説明します。
-
新機能:スタンドアロンがデフォルト — Angular 17 以降、新しいコンポーネントはデフォルトでスタンドアロンです
-
新機能:スタンドアロン向けの provideRouter — RouterModule の代わりに関数型プロバイダーを使用します
-
新機能:ng generate @angular/core:standalone — 移行用スキーマティック
-
非推奨:NgModule — スタンドアロンコンポーネントへの移行が推奨されます
ベストプラクティス
- スタンドアロンコンポーネントを作成します
@Component({
standalone: true,
imports: [CommonModule, MatButtonModule],
selector: 'app-my',
template: `<button>Click</button>`
})
export class MyComponent {}
- 依存関係には imports 配列を使用します
@Component({
standalone: true,
imports: [
CommonModule,
RouterModule,
MatCardModule,
MyChildComponent
],
template: `
<mat-card>
<app-my-child></app-my-child>
</mat-card>
`
})
export class ParentComponent {}
- スタンドアロンコンポーネントをブートストラップします
// main.ts
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app/app.component';
import { appConfig } from './app/app.config';
bootstrapApplication(AppComponent, appConfig)
.catch(err => console.error(err));
- 関数型プロバイダーを使用します
export const appConfig: ApplicationConfig = {
providers: [
provideRouter(routes),
provideHttpClient(),
provideAnimations()
]
};
- provideZoneChangeDetection を使用します
export const appConfig: ApplicationConfig = {
providers: [
provideZoneChangeDetection({ eventCoalescing: true })
]
};
- NgModule から移行します
# Full migration
ng generate @angular/core:standalone
# Specific component
ng generate @angular/core:standalone --path=path/to/component
- スタンドアロンで Router Outlet を使用します
@Component({
standalone: true,
imports: [RouterOutlet],
template: `<router-outlet></router-outlet>`
})
export class AppComponent {}
- スタンドアロンコンポーネントを遅延読み込みします
const routes: Routes = [
{
path: 'admin',
loadComponent: () => import('./admin/admin.component').then(m => m.AdminComponent)
}
];
- 循環インポートには forwardRef を使用します
@Component({
standalone: true,
imports: [forwardRef(() => OtherComponent)]
})
export class MyComponent {}
- スタンドアロンコンポーネントをエクスポートします
@Component({
standalone: true,
exports: [MyComponent],
imports: [MyComponent]
})
export class FeatureComponent {}
コメント
Markdown 対応