最近、私は教育の撤回におけるESモジュールのいくつかの内容を体系的に研究し、使用プロセス中に簡単に踏むことができるいくつかのポイントを見つけました。
1つ:スクリプトタグの問題
のWeb環境でこの問題をチェックするには、ラベルのHTMLスクリプト
このtype属性を追加しないと、ESモジュールがES6の構文であり、ブラウザがそれを認識できないため、エラーが発生する可能性があります。
トピックから外れて、type = "module"がスクリプトタグに追加された場合、次の特性があります。
- デフォルトでストリクトモードになりますが、ストリクトモードで直接使用することはできません
- 各モジュールは独立したプライベートスコープになり、外部からはアクセスできなくなります
- レンダリングをブロックすることなく、スクリプトの実行を自動的に遅らせることができます。延期と同じ効果があります。一般的な現象は、ポップアップウィンドウが書き込まれた後にテキストが出力されることです。テキストは、ポップの終了を待ちます。 -アップウィンドウを出力します。この属性を追加すると、スクリプトが遅延します。実行
- 要求された外部リンクはCORSをサポートする必要があります
2:デフォルトのエクスポートと通常のエクスポートの問題
通常の輸出について話させてください。
- 変数の前にエクスポート宣言を使用する
export const msg = "hello tq~"
export function add(x){
return function(y){
return x + y
}
}
- 中括弧を使用する
const msg = "hello tq~"
function add(x){
return function(y){
return x + y
}
}
export{
msg,
add
}
次に、対応するインポート構文は次のようになります。
import {
msg ,add} from './module.js'
console.log(msg)
console.log(add(1)(2))
ピットが来ました:ここでは、固定文法で固定された通常のエクスポート中括弧であり、文法で固定された固定中括弧のみをインポートする派生オブジェクトではありません。
これが与えられている割り当てを分解しないため、この一般的なエクスポートはオブジェクトではなく、破壊的な割り当てではありません!!
割り当てを破壊しません!**破壊的な割り当てではありません!**重要なことを3回言う
デフォルトのエクスポートを見てみましょう。
const msg = "hello tq~"
function add(x){
return function(y){
return x + y
}
}
export default{
msg,
add
}
この方法でエクスポートすると、エクスポートされたオブジェクトはオブジェクトになります
。インポートして確認しましょう。
ただし、デフォルトのエクスポートに値するときに中括弧を使用すると、エラーが報告されます。
したがって、同じ文であり、破壊的な割り当て。
デフォルトのエクスポートを理解しています。つまり、デフォルトの後にのみエクスポートし、次に中括弧をエクスポートし、次に中括弧のみをエクスポートします。受信するときは、受信する値である必要があります。
ノードでESモジュールを使用する際の問題
最初の方法:
まず第一に:サフィックス名
を変更し、パスも変更することを忘れないでください
コマンドラインを使用して実行する
node --experimental-modules index.mjs
--Experimental-modulesこのコマンドはノードの実験環境です
2番目の方法:
package.jsonに構成を追加します
コマンド実行を使用します
node --experimental-modules index.js
ただし、commonJSを使用する場合は、commonJSのサフィックスをcjsに変更する必要があります。