12

HTML インポートWeb コンポーネント仕様の一部であり、Web 上の依存関係を処理する方法を提供します。ES6 モジュールも同じことを行いますが、Javascript コードのみです。

これら2つがどのように連携するかについて、明確な点はありますか?

編集: 例:私の最近のプロジェクトでは、2 つの Javascript コンポーネント (ファイル) があり、そのうちの 1 つは他のコンポーネントに依存していましたが、HTML コード (別のコンポーネント) はそれらのいずれかを使用できました。そのため、HTML に依存スクリプトを含めたときに、親スクリプトも含めたくありませんでした (依存関係を手動で処理することを避けました)。ES6モジュールとスクリプトインクルードを混在させる以外に、明確に定義された方法はないようです。私が目にする唯一のオプションは、component.io のように、必要なファイルと依存関係を指定して、コンポーネントごとに個別のファイルを維持することです。

4

2 に答える 2

7

Web コンポーネントが ES6 モジュールと対話する方法はまだ確定していませんが、少なくとも 2 つのオプションがあります。

ES6 にはrealmsという概念があります。2 つの iFrame に JavaScript がある場合、2 つの iFrame は相互に通信し、データをやり取りできます。しかし、彼らは異なる領域にいます。これは、一方のArray.prototypeオブジェクトを他方に影響を与えることなく変更できることを意味します。ほとんどの場合、各 Web コンポーネントには独自のレルムがあるため、相互に干渉することはありません。

各レルムには一連のグローバル オブジェクトがあり、これにはオブジェクトが含まれます (おそらく、仕様はまだ確定していません) Loader。の新しいインスタンスを作成し、Loaderそれを使用してモジュールをロードできます。レルムにはすでに 1 つ存在し、これがデフォルトです。各Loaderインスタンスには独自の定義済みモジュールのリストがあるため、各 Web コンポーネントに独自のインスタンスを与えることができLoaderます。

RealmsWeb コンポーネントに異なるオブジェクトが与えられるかどうかはわかりませんLoaderが、異なる Web コンポーネントが互いに干渉することはほとんどありません。

于 2014-03-18T15:04:31.937 に答える