なぜ私たちに輸入が必要かわかりません。基本的に、モジュールはコードを異なるファイルに分割することを可能にします。あなたは一つのファイル/モジュールに次のしていると仮定します
class AComp {}
class BComp {
constructor() {
// creates new instance of AComp
new AComp();
}
}
さて、あなたはBCompは、そのクラスのインスタンスを作成するために、ACOMPクラスに参照を使用していることをここで見ることができます。その後、我々は異なるモジュール/クラスに、これらのクラスを分割することを決定した:あなたはb-comp.js
を実行する場合、それはb-comp.js
ファイル/モジュールにはAComp
クラスがないと言うことになるので
----------------------------- a-comp.js -----------------------------
class AComp {}
----------------------------- b-comp.js -----------------------------
class BComp {
constructor() {
// creates new instance of AComp
new AComp();
}
}
は今、JavaScriptエンジンがエラーをスローします。そこで、JSエンジンにAComp
を探す場所を伝える必要があります。これをインポートすると、次のようになります。
import { AComp } from 'a-comp';
class BComp {
constructor() {
// creates new instance of AComp
new AComp();
}
}
すべて正常に動作します。
いつコンポーネントをインポートする必要がありますか?私たちがする必要がないとき?
あなたが見ることができるように我々はたちはb-comp.js
ファイル/モジュールでAComp
クラス参照を使用しているため、インポートを使用する必要がありました。 BComp
ファイル/モジュールでAComp
クラスリファレンスを使用しなかった場合は、AComp
クラスをインポートする必要はありません。
...なぜ私たちは親コンポーネントに子コンポーネントをインポートしない
チュートリアルからわかるように、どちらのAppComponent
クラスは、ファイル/モジュールのコードに直接HeroDetailComponent
クラス参照を使用し、またHeroDetailComponent
AppComponent
クラスリファレンスを使用します。だから、それらをインポートする必要はありません。
私たちがそれをしないと、角度がどのようにこのことがわかるのですか? ([hero] = "selectedHero")? '英雄'は子コンポーネントのプロパティです。 'selectedHero'は親コンポーネントのプロパティですか?
それは親AppComponent
テンプレートで提供される情報から推測することができ、角度のコンパイラは、すべての必要な情報を取得するには、この構文[hero]="selectedHero"
を使用しているので。