今回は、ES6のnode.jsとexportsとmodule.exportsの使い方について詳しく説明します。node.jsとES6のexportsとmodule.exportsを使用する際の注意点とは何ですか。見てみましょう。
ああ、Xi、私の頭はとても大きい....
これで完了です。次に、その使用範囲を整理してみましょう。
require: インポートはノードと es6 の両方でサポートされます
この瞬間から、私は彼らの関係を明確にする時が来たと感じました、そうでなければ私は混乱して死ぬでしょう。言うことはあまりありません。始めましょう! !
ノードモジュール
Node のモジュール システムは CommonJS 仕様に従います。
そこで、CommonJS 仕様とは何でしょうか?という疑問が再び生じます。
以前の js は比較的複雑だったため、誰もが独自のコードを作成し、モジュールの概念はありませんでした。この仕様は実際にはモジュールの定義です。
CommonJS で定義されるモジュールは、モジュール識別 (モジュール)、モジュール定義 (エクスポート)、モジュール参照 (必須) に分かれています
まずはexportsとmodule.exportsについて説明しましょう
ノードがファイルを実行すると、エクスポートおよびモジュール オブジェクト 、
がファイル内に生成されます。 そしてモジュールにはexports属性があります。それらの関係は次のようになり、すべて {} メモリ領域を指します。
りーそれでは、コードを見てみましょう。
りー上記からわかるように、実際には、require によってエクスポートされるコンテンツは、exports ではなく、module.exports によってポイントされるメモリ ブロックのコンテンツです。
つまり、これらの違いは、exports は module.exports への単なる参照であり、後者によるコンテンツの追加を支援するために使用されるということです。
分かりやすい言葉で言うと、exports は module.exports がメモリ内のデータを操作するのを支援するだけです。結局、実際に必要なコンテンツは module.exports だけです。本当に大変な作業です。
実際、メモリ ブロックの概念を使用して理解すると、非常に明確になります。
次に、混乱を避けるために、module.exports を使用してエクスポートし、require を使用してインポートするようにしてください。
ES でのモジュールのエクスポートとインポート
正直に言うと、es のモジュールは非常に明確です。ただし、明確にする必要がある詳細がいくつかあります。
たとえば、エクスポートとエクスポートのデフォルト、インポートの場合はインポート a from ..、インポート {a} from .. は少し混乱するため、整理してみましょう。
エクスポートとデフォルトのエクスポート
まずこれら 2 つのエクスポートについて説明し、次にそれらの違いについて説明します
エクスポートとエクスポートのデフォルトの両方を使用して、定数、関数、ファイル、モジュールなどをエクスポートできます
コードを見て確認してみましょう
testEs6Export.js
exports = module.exports = {};
Index.js
//utils.js let a = 100; console.log(module.exports); //能打印出结果为:{} console.log(exports); //能打印出结果为:{} exports.a = 200; //这里辛苦劳作帮 module.exports 的内容给改成 {a : 200} exports = '指向其他内存区'; //这里把exports的指向指走 //test.js var a = require('/utils'); console.log(a) // 打印为 {a : 200}
上記からわかるように、ES6 のモジュール システムは非常に柔軟に感じられます。
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
以上がNode.jsとES6のexportsとmodule.exportsの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。