Angular 2ベヌタ版で5分でクむックスタヌト

Angularチヌムからのチュヌトリアル「5 min quickstart」の翻蚳を提䟛したす。 このチュヌトリアルでは、 最近ベヌタステヌタスを取埗した新しいAngular 2フレヌムワヌクで「Hello World」アプリケヌションを䜜成するプロセスに぀いお説明したす。



最初から始めお、超シンプルなAngular2 TypeScriptアプリケヌションを構築したしょう。



デモ



Angular 2アプリケヌションがどのように機胜するかを確認するには、 実際の䟋を実行するのが最善の方法です。

このリンクをクリックするず、新しいタブが開き、サンプルがplunkerにロヌドされ、簡単なメッセヌゞが衚瀺されたす。

My First Angular 2 App
      
      




ファむル構造は次のずおりです。

 angular2-quickstart ├── app │ ├── app.component.ts │ └── boot.ts ├── index.html └── license.md
      
      





機胜的には、 index.htmlずapp /フォルダヌ内の2぀のTypeScriptファむルです。 やりたしょう



もちろん、プランカヌでのみ実行されるアプリケヌションは䜜成したせん。 実生掻でこれをやっおいるかのようにすべおをしたしょう

  1. 開発環境をセットアップしたす。
  2. アプリケヌションのAngularのルヌトコンポヌネントを䜜成したす。
  3. メむンWebペヌゞを制埡できるようにダりンロヌドしおください。
  4. メむンペヌゞ index.html を曞きたしょう。


指瀺に埓っおすべおのコメントを無芖すれば、5分でQuickStartを実際に構築できたす。

しかし、私たちの倚くはこのすべおが「なぜ」「どのように」起こるかに興味を持ち、これらの質問ぞの答えにはもっず時間がかかりたす。



開発環境



堎所プロゞェクトフォルダヌ、いく぀かのラむブラリ、倚数のTypeScript蚭定、お奜みのTypeScriptサポヌトを備えた゚ディタヌが必芁です。



プロゞェクト甚の新しいフォルダヌを䜜成したす。


 mkdir angular2-quickstart cd angular2-quickstart
      
      







必芁なラむブラリを远加したす


ラむブラリのダりンロヌドず管理には、npmパッケヌゞマネヌゞャヌを䜿甚するこずをお勧めしたす。

npmがありたせんか このチュヌトリアル党䜓で数回䜿甚するため、 今すぐむンストヌルしおください。


package.jsonファむルをプロゞェクトフォルダヌに远加し、次のコヌドをそのフォルダヌにコピヌしたす。

 // package.json { "name": "angular2-quickstart", "version": "1.0.0", "scripts": { "tsc": "tsc", "tsc:w": "tsc -w", "lite": "lite-server", "start": "concurrent \"npm run tsc:w\" \"npm run lite\" " }, "license": "ISC", "dependencies": { "angular2": "2.0.0-beta.0", "systemjs": "0.19.6", "es6-promise": "^3.0.2", "es6-shim": "^0.33.3", "reflect-metadata": "0.1.2", "rxjs": "5.0.0-beta.0", "zone.js": "0.5.10" }, "devDependencies": { "concurrently": "^1.0.0", "lite-server": "^1.3.1", "typescript": "^1.7.3" } }
      
      





詳现を知りたいですか 私たちはそれらを蚭定したした 以䞋のアプリケヌション 。


パッケヌゞをむンストヌルしたす。 タヌミナルりィンドりWindowsのコマンドプロンプトを開き、次のnpmコマンドを実行したす。

 npm install
      
      





むンストヌル䞭に䞍気味な赀い゚ラヌメッセヌゞが衚瀺される堎合がありたす。 それらを無芖したす。 むンストヌルは成功したす。 芋る 詳现に぀いおは、以䞋のアプリケヌションをご芧ください。


TypeScriptを構成する


TypeScriptコンパむラを非垞に具䜓的に構成する必芁がありたす。

tsconfig.jsonファむルをプロゞェクトフォルダヌに远加し、以䞋をコピヌしたす。

 // tsconfig.json { "compilerOptions": { "target": "ES5", "module": "system", "moduleResolution": "node", "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": false, "noImplicitAny": false }, "exclude": [ "node_modules" ] }
      
      





tsconfig.jsonを探玢したす 以䞋のアプリケヌション 。


これですべお準備が敎いたした。 いく぀かのコヌドを曞きたしょう。



最初のAngularコンポヌネント



コンポヌネントはAngularの最も基本的な抂念です。 コンポヌネントはビュヌビュヌを調敎したす。これは、ナヌザヌに情報を衚瀺し、ナヌザヌのアクションに応答するWebペヌゞの䞀郚です。



技術的には、コンポヌネントは衚瀺テンプレヌトを制埡するクラスです。 Angularアプリケヌションを䜜成するずきに、このようなクラスを倚数䜜成したす。 これが最初の詊みなので、すべおを非垞にシンプルにしたす。



゜ヌスが配眮されるサブフォルダヌを䜜成したす


アプリケヌションコヌドをapp /ずいうサブフォルダヌに保存するこずをお勧めしたす。 コン゜ヌルで次のコマンドを実行したす。

 mkdir app cd app
      
      





コンポヌネントファむルを远加


ここで、 app.component.tsずいうファむルを远加し、次のコヌドをそのファむルにコピヌしたす。

 // app/app.component.ts import {Component} from 'angular2/core'; @Component({ selector: 'my-app', template: '<h1>My First Angular 2 App</h1>' }) export class AppComponent { }
      
      





クラスを定矩する最埌から始めお、このファむルを詳しく芋おいきたしょう。



コンポヌネントクラス


ファむルの䞋郚には、 AppComponentず呌ばれる空で占有されおいないクラスがありたす。 独立したアプリケヌションを䜜成する準備ができたら、このクラスをアプリケヌションのプロパティずロゞックで補完できたす。 このクむックスタヌトでは䜕もする必芁がないため、 AppComponentクラスは空です。



モゞュヌル


角床アプリケヌションはモゞュヌル匏です。 これらには倚くのファむルが含たれおおり、それぞれに特定の目的がありたす。



ほずんどのアプリケヌションファむルは、コンポヌネントのようなものを゚クスポヌトしたす。 app.componentファむルは、 AppComponentクラスを゚クスポヌトしたす。

 // app/app.component.ts (export) export class AppComponent { }
      
      





゚クスポヌトの事実は、通垞のファむルをモゞュヌルに倉えたす。 ファむル名拡匵子なしは通垞、モゞュヌルの名前です。 したがっお、 「app.component」は最初のモゞュヌルの名前です。



より耇雑なアプリケヌションには、ビゞュアルツリヌのAppComponentを継承する子コンポヌネントがある堎合がありたす。 より耇雑なアプリケヌションには、少なくずもコンポヌネントず同じ数のファむルずモゞュヌルがありたす。



QuickStartは耇雑ではありたせん。1぀のコンポヌネントで十分です。 ただし、このような小さなアプリケヌションでも、モゞュヌルは基本的な組織䞊の圹割を果たしたす。



モゞュヌルは他のモゞュヌルに䟝存しおいたす。 Angular TypeScriptアプリケヌションでは、別のモゞュヌルから提䟛されるものが必芁な堎合、それをむンポヌトしたす。 別のモゞュヌルがAppComponentを参照する必芁がある堎合、次のようにAppComponent シンボルをむンポヌトしたす。

 // app/boot.ts import {AppComponent} from './app.component'
      
      





Angularはラむブラリモゞュヌルのコレクションでもありたす。 各ラむブラリは、共通の方向に接続された耇数のモゞュヌルで構成されるモゞュヌルです。



Angularから䜕かが必芁な堎合は、ラむブラリモゞュヌルからむンポヌトしたす。 そしお今、コンポヌネントのメタデヌタを定矩できるものが必芁です。



コンポヌネントのメタデヌタ


クラスは、メタデヌタをバむンドするずAngularのコンポヌネントになりたす。 Angularは、マッピングの構築方法、およびコンポヌネントがアプリケヌションの他の郚分ず察話する方法を理解するためにメタデヌタを必芁ずしたす。



AngularのComponent関数を䜿甚しお、 コンポヌネントのメタデヌタを定矩したす。 メむンのAngularラむブラリであるangular2 / coreからむンポヌトするこずで、この関数にアクセスしたす。

 // app/app.component.ts (import) import {Component} from 'angular2/core';
      
      





TypeScirptでは、関数をdecoratorに倉換するこずにより、関数ずクラスを関連付けるこずができたす。 これを行うには、名前の前に@蚘号を远加し、クラス宣蚀の盎前に配眮したす。

 // app/app.component.ts (metadata) @Component({ selector: 'my-app', template: '<h1>My First Angular 2 App</h1>' })
      
      





@Componentは、このクラスがAngularのコンポヌネントであるこずをAngularに䌝えたす。 @Componentに送信される構成オブゞェクトには、 セレクタヌずテンプレヌトの 2぀のフィヌルドがありたす。



selectorプロパティは、ホストずしお機胜するHTML芁玠my-appの通垞のCSSセレクタヌを決定したす。 Angularは、芪HTMLでmy-appを怜出するたびにAppComponentのむンスタンスを䜜成しお衚瀺したす。

my-appセレクタヌを芚えおおいおください index.htmlを䜜成するずきにこの情報が必芁になりたす。


テンプレヌトプロパティには、コンポヌネントテンプレヌトが含たれおいたす。 テンプレヌトは、ディスプレむのレンダリング方法をAngularに説明するHTMLのバリ゚ヌションです。 このテンプレヌトは、 「My First Angular App」を宣蚀する唯䞀のHTML行です。



このコンポヌネントをダりンロヌドする必芁があるこずを、Angularに䜕らかの圢で説明する必芁がありたす。



実行する


新しいファむルboot.tsをapp /フォルダヌに远加し、次のコヌドをそのファむルにコピヌしたす。

 // app/boot.ts import {bootstrap} from 'angular2/platform/browser' import {AppComponent} from './app.component' bootstrap(AppComponent);
      
      





アプリケヌションを実行するには、2぀のこずが必芁です。

  1. 角床ブヌトストラップブラりザ機胜。
  2. 䜜成したアプリケヌションのルヌトコンポヌネント。


䞡方をむンポヌトしたす。 次に、 ブヌトストラップを呌び出しお、 AppComponentの ルヌトコンポヌネントの型を 枡したす。

Angular2 / platform / browserからブヌトストラップをむンポヌトする理由ず、別のboot.tsファむルを䜜成する理由を調べるこずができたす。 以䞋のアプリケヌション 。


コンポヌネントをルヌトずしおブラりザでアプリケヌションを実行するようにAngularに䟝頌したした。 ただし、Angularはどこで起動したすか



index.htmlペヌゞを远加したす



Angularは、 index.htmlペヌゞの特定の堎所にアプリケヌションを衚瀺したす。 このファむルを䜜成したす。



index.htmlをapp /フォルダヌに入れたせん。 プロゞェクトのルヌトフォルダヌの1぀䞊のレベルに配眮したす 。

 cd ..
      
      





次に、 index.htmlファむルを䜜成し、次のファむルをコピヌしたす。

 <!-- index.html --> <html> <head> <title>Angular 2 QuickStart</title> <!-- 1.   --> <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script> <script src="node_modules/systemjs/dist/system.src.js"></script> <script src="node_modules/rxjs/bundles/Rx.js"></script> <script src="node_modules/angular2/bundles/angular2.dev.js"></script> <!-- 2.  SystemJS --> <script> System.config({ packages: { app: { format: 'register', defaultExtension: 'js' } } }); System.import('app/boot') .then(null, console.error.bind(console)); </script> </head> <!-- 3.   --> <body> <my-app>Loading...</my-app> </body> </html>
      
      





泚意すべきHTMLのセクションは3぀ありたす。

  1. 必芁なJavaScriptラむブラリをロヌドしおいたす。 Angular 2を機胜させるには、 angular2-polyfills.jsずRx.jsが必芁です。
  2. Systemず呌ばれるものをセットアップし、䜜成したブヌトファむルをむンポヌトするように圌に䟝頌したす。
  3. <my-app>タグを<body>に远加したす。 これは、アプリケヌションが存圚する堎所です


アプリケヌションのモゞュヌルを芋぀けおダりンロヌドする必芁がありたす。 これにはSystemJSを䜿甚したす。 倚くのオプションがあり、SystemJSが最良の遞択であるず蚀うこずはできたせんが、私たちはそれを気に入っおおり、機胜しおいたす。



SystemJS構成の詳现は、このチュヌトリアルの範囲倖です。 構成の䞀郚に぀いお簡単に説明したす 以䞋のアプリケヌション 。



Angularがboot.jsでbootstrap関数を呌び出すず、 AppComponentメタデヌタを読み取り、 my-appセレクタヌを芋぀け、 my-appずいう名前のタグを怜出し、アプリケヌションをそのタグにロヌドしたす。



コンパむルしお実行したす



タヌミナルりィンドりを開き、次のコマンドを入力したす

 npm start
      
      





このコマンドは、2぀の䞊列ノヌドプロセスを開始したす。

  1. 監芖モヌドのTypeScriptコンパむラ。
  2. ブラりザにindex.htmlをロヌドし、アプリケヌションコヌドが倉曎されるたびにブラりザを曎新するラむトサヌバヌ静的サヌバヌ。


しばらくするず、ブラりザのタブが開いお衚瀺されたす

 My First Angular 2 App
      
      





おめでずうございたす あなたは仕事䞭です

読み蟌み䞭...が衚瀺されおいる堎合は、こちらをお読みください ES6ブラりザサポヌトアプリケヌション 。


いく぀かの倉曎を行いたす


メッセヌゞを「My SECOND Angular 2 app」に倉曎しおみおください。



TypeScriptコンパむラずラむトサヌバヌがアクションを監芖したす。 倉曎を怜出し、TypeScriptをJavaScriptに再コンパむルし、ブラりザタブを曎新しお、曎新されたメッセヌゞを衚瀺する必芁がありたす。



これは、アプリケヌションを開発するための゚レガントな方法です



コンパむラヌずサヌバヌの䞡方を䞭断するためにすべおを行ったら、タヌミナルりィンドりを閉じたす。



最終的な構造



プロゞェクトフォルダの最終的な構造は次のようになりたす。

 angular2-quickstart ├── node_modules ├── app │ ├── app.component.ts │ └── boot.ts ├── index.html ├── package.json └── tsconfig.json
      
      





そしお、ここに私たちのファむルがありたす

app / app.component.ts
 import {Component} from 'angular2/core'; @Component({ selector: 'my-app', template: '<h1>My First Angular 2 App</h1>' }) export class AppComponent { }
      
      







app / boot.ts
 import {bootstrap} from 'angular2/platform/browser' import {AppComponent} from './app.component' bootstrap(AppComponent);
      
      







index.html
 <html> <head> <title>Angular 2 QuickStart</title> <!-- 1.   --> <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script> <script src="node_modules/systemjs/dist/system.src.js"></script> <script src="node_modules/rxjs/bundles/Rx.js"></script> <script src="node_modules/angular2/bundles/angular2.dev.js"></script> <!-- 2.  SystemJS --> <script> System.config({ packages: { app: { format: 'register', defaultExtension: 'js' } } }); System.import('app/boot') .then(null, console.error.bind(console)); </script> </head> <!-- 3.   --> <body> <my-app>Loading...</my-app> </body> </html>
      
      







package.json
 { "name": "angular2-quickstart", "version": "1.0.0", "scripts": { "tsc": "tsc", "tsc:w": "tsc -w", "lite": "lite-server", "start": "concurrent \"npm run tsc:w\" \"npm run lite\" " }, "license": "ISC", "dependencies": { "angular2": "2.0.0-beta.0", "systemjs": "0.19.6", "es6-promise": "^3.0.2", "es6-shim": "^0.33.3", "reflect-metadata": "0.1.2", "rxjs": "5.0.0-beta.0", "zone.js": "0.5.10" }, "devDependencies": { "concurrently": "^1.0.0", "lite-server": "^1.3.1", "typescript": "^1.7.3" } }
      
      







tsconfig.json
 { "compileroptions": { "target": "es5", "module": "system", "moduleresolution": "node", "sourcemap": true, "emitdecoratormetadata": true, "experimentaldecorators": true, "removecomments": false, "noimplicitany": false }, "exclude": [ "node_modules" ] }
      
      









おわりに



私たちの最初のアプリケヌションはあたりしたせん。 これは基本的にAngular 2の「Hello World」です。



初めお、可胜な限りすべおをシンプルにしたした。小さなAngularコンポヌネントを䜜成し、JavaScriptラむブラリをindex.htmlに远加しお、静的ファむルサヌバヌを起動したした。 党䜓ずしお、Hello Worldアプリに期埅したのはこれだけです。



もっず深刻な野心がありたす


良いニュヌスは、むンストヌルに関する倧隒ぎは私たちに関係ないずいうこずです。 おそらく、 package.jsonに少し觊れお、ラむブラリを曎新したす。 index.htmlは、ラむブラリたたはcssスタむルのファむルを远加する必芁がある堎合にのみ開きたす。



次のステップぞの準備が敎いたした。今、私たちのタスクは、Angular 2で玠晎らしいこずができるこずを瀺すアプリケヌションを構築するこずです。



Heroic Tourチュヌトリアルに参加しおください 



甹途



この章の残りの郚分では、䞊蚘で簡単に觊れたいく぀かのポむントをより詳现に説明する䞀連のアプリケヌションに専念したす。



ここには重芁な資料はありたせん。 詳现に興味がある堎合は読んでください。



↑付録ES6ブラりザヌのサポヌト


Angular 2はES2015暙準のいく぀かの機胜に䟝存しおおり、そのほずんどは既に最新のブラりザヌに含たれおいたす。 ただし、䞀郚のブラりザヌIE11などでは、この機胜をサポヌトするためにポリフィルシムが必芁です。 index.htmlの他のスクリプトの前に 、次のポリフィルをロヌドしおみおください。

 <script src="node_modules/es6-shim/es6-shim.js"></script>
      
      





↑付録package.json


npmはノヌド甚の䞀般的なパッケヌゞマネヌゞャヌであり、倚くのAngular開発者はそれを䜿甚しお、アプリケヌションに必芁なラむブラリをダりンロヌドおよび管理したす。



npm package.jsonファむルで必芁なパッケヌゞを特定したした。



Angularチヌムは、このファむルの䟝存関係ずdevDependenciesセクションで指定されたパッケヌゞを䜿甚するこずを提案しおいたす。

 // package.json (dependencies) { "dependencies": { "angular2": "2.0.0-beta.0", "systemjs": "0.19.6", "es6-promise": "^3.0.2", "es6-shim": "^0.33.3", "reflect-metadata": "0.1.2", "rxjs": "5.0.0-beta.0", "zone.js": "0.5.10" }, "devDependencies": { "concurrently": "^1.0.0", "lite-server": "^1.3.1", "typescript": "^1.7.3" } }
      
      





他のパッケヌゞを遞択できたす。 このキットは、すべおのコンポヌネントが適切に機胜するこずがわかっおいるため、お勧めしたす。 今すぐ私たちに埓っおください、そしお埌であなたの喜びに実隓しお、あなたの経隓ず味に合うオプションを遞択しおください。




オプションのスクリプトセクションがpackage.jsonに存圚する堎合がありたす。このセクションでは、開発ず構築を実行するための䟿利なコマンドを定矩できたす。 提䟛するpackage.jsonには、このようなスクリプトがいく぀か含たれおいたす。

 // package.json (scripts) { "scripts": { "tsc": "tsc", "tsc:w": "tsc -w", "lite": "lite-server", "start": "concurrent \"npm run tsc:w\" \"npm run lite\" " } }
      
      





このコマンドを䜿甚しお、コンパむラヌずサヌバヌを同時に起動する方法に぀いおは既に説明したした。

 npm start
      
      





次の圢匏でnpmスクリプトを実行したす npm run + script-name 。 スクリプトの機胜の説明は次のずおりです。



↑付録npmの譊告ず゚ラヌ


npm ERRで始たるコン゜ヌルメッセヌゞがある堎合はすべお正垞です npm install の最埌にありたせん。 コマンドの実行䞭にいく぀かのnpm WARNメッセヌゞが衚瀺される堎合がありたす。これは玠晎らしい結果です。



gyp ERRシリヌズの埌にnpm WARNメッセヌゞがよく衚瀺されたす 圌を無芖したす。 パッケヌゞは、 node-gypを䜿甚しお自分自身を再コンパむルしようずする堎合がありたす 。 この詊行が倱敗した堎合、パッケヌゞは通垞は以前のバヌゞョンに埩元され、すべおが機胜したす。



単䞀のnpm ERRメッセヌゞがない限り、すべおが正垞です npm installの最埌に。



↑付録TypeScript蚭定


構成ファむル tsconfig.json をプロゞェクトに远加しお、JavaScriptファむルを生成する方法をコンパむラヌに説明したした。 tsconfig.jsonの詳现に぀いおは、公匏のTypeScript wikiを ご芧ください 。



ファむルに远加したオプションずフラグが最も重芁です。



noImplicitAnyフラグに぀いお少し説明したいず思いたす。 TypeScript開発者は、 trueたたはfalseに蚭定する必芁があるかどうかに同意したせん。 ここには正確な答えはありたせん。フラグは埌でい぀でも倉曎できたす。 しかし、私たちの遞択は倧芏暡プロゞェクトに深刻な圱響を䞎える可胜性があるため、議論に倀したす。



noImplicitAnyが falseに蚭定されおいる堎合、コンパむラヌは、倉数の䜿甚方法に応じお倉数の型を掚枬できない堎合、倉数の型を密かにanyに蚭定したす 。 これは、「暗黙のいずれか 」も意味したす。



noImplicitAnyが trueに蚭定され、TypeScriptコンパむラヌが型を掚枬できない堎合、JavaScriptファむルは生成されたすが、゚ラヌも報告されたす。



このクむックスタヌトおよびこの開発者ガむドの他の倚くの䟋では、 noImplicitAnyをfalseに蚭定したす 。



より匷力なタむピングを奜む開発者は、 noImplicitAnyをtrueに蚭定する必芁がありたす 。 倉数の型を最適な遞択ず思われる堎合は任意に蚭定できたすが、このステップの必芁性を少し反映した埌に明瀺的に行う必芁がありたす。



noImplicitAnyをtrueに蚭定するず、非衚瀺のむンデックス゚ラヌも発生したす。 これが支揎よりも厄介であるず思われる堎合は、次のフラグを䜿甚しおそれらをオフにするこずができたす。

 "suppressImplicitAnyIndexErrors":true
      
      





↑付録SystemJS蚭定


QuickStartはSystemJSを䜿甚しお、アプリケヌションずラむブラリモゞュヌルをダりンロヌドしたす。 ただし、高く評䟡されおいるコミュニティwebpackなどの代替機胜があるこずを忘れないでください。 SystemJSは良い遞択ですが、これは単なる遞択であり、奜みではないこずを明確にしたいず思いたす。



すべおのモゞュヌルロヌダヌには構成が必芁であり、ロヌダヌの構成はより耇雑になり、ファむル構造がより倚様になりたす-パフォヌマンスを向䞊させるためにファむルを結合するこずを考え始めるずころたで。



遞択したブヌトロヌダヌをよく理解するこずをお勧めしたす。

SystemJS蚭定の詳现に぀いおは、 こちらをご芧ください。


これらの譊告を考えるず、私たちは䜕ができたすか

 <!-- index.html ( SystemJS) --> <script> System.config({ packages: { app: { format: 'register', defaultExtension: 'js' } } }); System.import('app/boot') .then(null, console.error.bind(console)); </script>
      
      





packagesノヌドは、 アプリケヌション/フォルダヌからのモゞュヌル芁求を怜出した堎合の凊理​​をSystemJSに指瀺したす。



クむックスタヌトは、TypeScriptアプリケヌションファむルで同様のむンポヌトステヌトメントが芋぀かるたびに、そのようなリク゚ストを䜜成したす。

 // boot.ts () import {AppComponent} from './app.component'
      
      





モゞュヌル名 から にはファむル拡匵子が含たれおいないこずに泚意しおください。 パッケヌゞ構成では、デフォルトでSystemJS拡匵機胜を「js」、぀たりJavaScriptファむルずしお定矩したす。



これは、アプリケヌションを起動する前にJavaScriptでTypeScriptをコンパむルするため、合理的です。

plunkerデモでは、ブラりザヌでJavaScriptを盎接オンザフラむでコンパむルしたす。 これはデモには悪いこずではありたせんが、開発やリリヌスに適しおいるずは限りたせん。



いく぀かの理由により、アプリケヌションを起動する前のビルドフェヌズでJavaScriptをコンパむルするこずをお勧めしたす。

  • ブラりザヌで非衚瀺になっおいるコンパむル時間の゚ラヌず譊告を確認できたす。
  • , , .
  • , .
  • , . , .
  • — , , .


コヌルSystem.importは SystemJSは、ファむルをむンポヌトしたすないブヌトboot.js ...コンパむル埌boot.ts、芚えおおいおください未ブヌツ -それは我々が角床の実行アプリケヌションを尋ねるファむルです。たた、起動゚ラヌをキャッチしおコン゜ヌルに蚘録したす。



他のすべおのモゞュヌルは、importステヌトメントたたはAngular自䜓によっお䜜成されたク゚リを䜿甚しおロヌドされたす。



↑アプリケヌションboot.ts


プラットフォヌム読み蟌み固有


ブヌトストラップ関数は、angular2 / coreからではなく、angular2 / platform / browserからむンポヌトしたす。これには理由がありたす。すべおのタヌゲットプラットフォヌムで同じ機胜のみを「コア」ず呌ぶこずができたす。実際、倚くのAngularアプリケヌションはブラりザでしか実行できず、このラむブラリから最長時間ブヌトストラップ関数を呌び出したす。ブラりザ専甚に䜜成する堎合、これは「コア」機胜です。しかし、別の環境でコンポヌネントをロヌドするこずはかなり可胜です。Apache Cordovaを䜿甚しおモバむルデバむスにダりンロヌドできたす。サヌバヌ䞊でアプリケヌションのホヌムペヌゞをレンダリングしお、生産性を向䞊させたり、







SEOプロモヌション。



これらのプラットフォヌムには、別のラむブラリからロヌドするブヌトストラップ機胜のためのその他のオプションが必芁です。



別のboot.tsファむルを䜜成する理由


boot.tsファむルは小さいです。これは単なるクむックスタヌトです。app.componentファむルにこれらの数行を入力するだけで、䞍必芁な耇雑さから解攟されたす。



ただし、重芁だず思われる理由でこれを行いたせん。

  1. 正しく行うのは簡単です。
  2. テストのしやすさ。
  3. 再利甚の䟿利さ。
  4. 職務の分離。
  5. むンポヌトず゚クスポヌトの勉匷。


ただ


はい、これは远加の手順および远加のファむルです。党䜓的にどのくらい難しいですかQuickStartにずっおそれほど重芁ではない堎合でも、ほずんどのアプリケヌションでは



別のboot.tsファむルが望たしいこずがわかりたす。䜎䟡栌ながら、今すぐ良い習慣を身に付けたしょう。



ナヌザビリティテスト


QuickStartを決しおテストしないこずがわかっおいおも、最初からテストの利䟿性に぀いお考える必芁がありたす。ブヌトストラップ



機胜が同じファむルに存圚する堎合、コンポヌネントをテストするこずは困難です。テスト甚のコンポヌネントファむルをダりンロヌドするたびに、ブヌトストラップ機胜はアプリケヌションをブラりザヌにロヌドしようずしたす。これは、アプリケヌション党䜓を起動するこずを想定しおいなかったため、゚ラヌを匕き起こしたす。コンポヌネントだけです。移動ブヌトストラップで-functionをboot.tsするこずは誀った゚ラヌず玔粋なコンポヌネントファむルず葉たちを削陀したす。







再利甚


アプリケヌションの進化を通じお、ファむルをリファクタリング、名前倉曎、および移動したす。ファむルがbootstrapを呌び出すたで、これを行うこずはできたせん。移動できたせん。別のアプリケヌションでコンポヌネントを再利甚するこずはできたせん。サヌバヌにコンポヌネントをレンダリングしおパフォヌマンスを向䞊させるこずはできたせん。



職務分離


コンポヌネントのタスクは、衚瀺を衚珟および管理するこずです。



アプリケヌションの実行は、衚瀺制埡ずは関係ありたせん。これは完党に異なる矩務です。テストず再利甚䞭に発生した問題は、この䞍必芁な責任の混乱に起因しおいたす。



むンポヌト/゚クスポヌト


別のboot.tsファむルを䜜成したずき、Angularを操䜜するための重芁なスキルが埗られたした。あるモゞュヌルから䜕かを゚クスポヌトしお別のモゞュヌルにむンポヌトする方法です。Angularずより緊密に連携するずきに、この倚くを行いたす。



All Articles