ホームページ > 記事 > ウェブフロントエンド > この記事では、Angular11 について詳しく理解します。
この記事では、Angular11 について紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
Angular は、バージョン 1.0 から 2.0 への開発における飛躍を経験しました。強力なツール TypeScript と組み合わせることで、Angular は大規模なアプリケーションにとって重要なオプションになりつつあります。スケール フロントエンド。この質問は主に Anguar 10 の基本概念を紹介し、読者が対応するコードをすぐに使い始めるのに役立ちます。 [関連する推奨事項: "angular チュートリアル "]
AngularJS は元々、Misko Hevery と Adam によって開発されました。 Abrons 2009 年に余暇に開発された個人プロジェクトです。元のプロジェクト名は GetAngular でした。設計目標は、Web デザイナー (非開発者) が HTML タグのみを使用して単純なアプリケーションを作成できるようにすることでした。時間の経過とともに、AngularJS は包括的な開発フレームワークに進化しました。 2010 年、Google フィードバックの開発速度とプロジェクトの進捗を促進するために、Misko Hevery は GWT に基づいて Google Feedback を再構築し、元の 17,000 行以上のコードをわずか 1,500 行以上に圧縮しました。が注目を集め、AngularJS は Google 企業のプロジェクトへと姿を変えました。
Angular1.0 では、双方向データ バインディングの概念が導入されています。 2016 年、Microsoft と Google は協力して新しい開発言語として TypeScript を採用し、Angular 2.0 をリリースしました。 Angular2.0 と Angularjs1.x はまったく異なるアーキテクチャであり、Angular2.0 以降のバージョンを総称して Angular2 と呼びます。 Angular1.x のユーザー グループも比較的大きく、対応するバージョン フレームワークは維持され続けており、最新バージョンは 1.8.2 です。 Angular2 の最新バージョンは 11.0.0 です。
##2.1 双方向データ バインディング
従来のフロントエンド開発では、データとビューがシングルバインディングで関連付けられることが多かった。このモデルの利点は、結果が比較的シンプルであることです。モデルはデータの更新とテンプレートと組み合わせたレンダリングを担当し、ビュー レイヤーは表示のみを担当します。この構造の欠点は、ビュー層でのデータの変更をモデル層にフィードバックできないことであり、高度にインタラクティブなページのニーズを満たすことができないことです。このとき、双方向のデータ バインディングが登場します。図 2 双方向のデータ バインディング |
双方向バインディング いくつかの形式 | |||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
// src/app/hero-list.component.html (binding) <li>{{hero.name}}</li> <app-hero-detail [hero]="selectedHero"></app-hero-detail> <li (click)="selectHero(hero)"></li> 3.6 Directive(指令)
// src/app/hero-list.component.html (structural) <li *ngFor="let hero of heroes"></li> <app-hero-detail *ngIf="selectedHero"></app-hero-detail> 属性型指令:修改现有元素的外观或行为 // src/app/hero-detail.component.html (ngModel) <input [(ngModel)]="hero.name"> 3.7 Service(服务)
// src/app/logger.service.ts (class) export class Logger { log(msg: any) { console.log(msg); } error(msg: any) { console.error(msg); } warn(msg: any) { console.warn(msg); } } // src/app/hero.service.ts (class) export class HeroService { private heroes: Hero[] = []; constructor( private backend: BackendService, private logger: Logger) { } getHeroes() { this.backend.getAll(Hero).then( (heroes: Hero[]) => { this.logger.log(`Fetched ${heroes.length} heroes.`); this.heroes.push(...heroes); // fill cache }); return this.heroes; } } 3.8 Dependency Injection(依赖注入)
@Injectable({ providedIn: 'root', }) 特定注册 @NgModule({ providers: [ BackendService, Logger ], ... }) 注入 // src/app/hero-list.component.ts (component providers) @Component({ selector: 'app-hero-list', templateUrl: './hero-list.component.html', providers: [ HeroService ] }) 四、创建第一Angular项目4.1 基于Angular CLI
npm install -g @angular/cli
npm new my-app
cd my-app ng server --open 4.2 基于Angular Quickstart
git clone https://github.com/angular/quickstart.git my-app
cd ./my-app npm run install
npm start 五、对比VUE5.1 技术对比
5.2 开源组件库资源对比
更多编程相关知识,请访问:编程视频!! |
以上がこの記事では、Angular11 について詳しく理解します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。