2017-01-21 11 views
0

モジュールの読み込み順序を示すデモを作成したいと思います。 2つのモジュールがあるとしますUnoDuoと私はコンソールにロードされた彼らの名前をとして印刷したいと思います。どうやってやるの?私は次の疑似コードについて話しています。私はのような野生のショットのカップルを試してみたモジュールがロードされたときにメソッドを呼び出す方法は?

Uno.js

import Duo from "./duo.js"; 
default export { 
    loaded:() => { console.log("Uno loaded"); } 
} 

Duo.js

default export { 
    loaded:() => { console.log("Duo loaded"); } 
} 

は、INITをロードし、などを開始。しかし、プリントアウトは得られませんでした。その後、私はしばらくそれをgoolearchedしたが、何か関連する何かを示す例は見られなかった。イベントが組み込まれているようなVueフレームワーク。構造体を追加すると、モジュールとプロトタイプの間の比較の波が生成されます。

通常、方法の例がたくさんある場合、それは達成できないことを意味します。しかし、私はそれが実行可能であることを矛盾する陳述を見つけていないので、私はまだ少し希望がある。

私はアプローチchaining the requireand subsequent statementsを見たことがありますが、私の場合はモジュール自体が自己完結的に冗長になりたいと思っています。

+0

デフォルト輸出オブジェクトリテラル悪い考えです。代わりに、名前付きエクスポートを使用してください: 'export function loaded(){...}'。 – Bergi

答えて

0

現在、モジュールから必要な機能を実行しています。これは誰かがその関数を呼び出す必要があることを意味し、モジュールがロードされたときに特定の名前でエクスポートされた項目を呼び出す自動フックはありません。

代わりに、モジュール本体の関数を自分で呼び出すだけです。モジュールが評価されている場合は、あなたが望むことをすべての副作用を実行するのは自由です。

// uno.js 
import "./duo.js"; 
console.log("Uno loaded"); 

// duo.js 
console.log("Duo loaded"); 
+0

それは明らかに明示されています。輸入通話の変更についてフォローアップがあります。あなたは 'from'というキーワードだけでなく、インポートされているものの名​​前を省略します。どうして?輸入品への参照が必要ないときに匿名で輸入するのと同じですか?それとも私が気づいていない何らかの短絡ですか? –

+0

はい、私の修正した 'duo.js'はもう何もエクスポートしないので、私はそれから何もインポートしません(私はどこにも' Uno'の識別子は必要ありません)。インポートは、他のモジュールが既にロードされていることを確認するだけです。 – Bergi

+0

素晴らしい! +1の精緻化。私は今、好奇心が強いです、モジュールがロードされるようにする合理的なシナリオはありますか?**それを参照したくないですか?私はおそらく、SASSファイルからの私のCSSのインポートは、結果の名前を必要としないと想像することができます。あれは正しいですか? JSファイルはどうですか?私たちはJavaScriptの塊をインポートしたいが、それへの参照を使用しない場合は、奇妙ではないケース? –

関連する問題