ホームページ >ウェブフロントエンド >jsチュートリアル >Node.jsとES6のexportsとmodule.exportsの使い方を詳しく解説

Node.jsとES6のexportsとmodule.exportsの使い方を詳しく解説

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-16 15:36:404189ブラウズ

今回は、ES6のnode.jsとexportsとmodule.exportsの使い方について詳しく説明します。node.jsとES6のexportsとmodule.exportsを使用する際の注意点とは何ですか。見てみましょう。

ああ、Xi、私の頭はとても大きい....

これで完了です。次に、その使用範囲を整理してみましょう。

  • require: インポートはノードと es6 の両方でサポートされます

  • エクスポート/インポート: エクスポートのみ es6 でサポートされます

  • module.exports/exports: エクスポートのみノードでサポートされます

この瞬間から、私は彼らの関係を明確にする時が来たと感じました、そうでなければ私は混乱して死ぬでしょう。言うことはあまりありません。始めましょう! !

ノードモジュール

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 つのエクスポートについて説明し、次にそれらの違いについて説明します

  • エクスポートとエクスポートのデフォルトの両方を使用して、定数、関数、ファイル、モジュールなどをエクスポートできます

  • 1 つのファイルまたはモジュールでは、複数のエクスポートとインポートが可能ですが、エクスポートのデフォルトは 1 つだけです

  • エクスポート デフォルトが必要ない場合は、エクスポート、インポート { } を追加する必要があります。

  • エクスポートは変数 を直接エクスポートできますが、エクスポート デフォルトはできません。

コードを見て確認してみましょう

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 サイトの他の関連記事に注目してください。

推奨読書:

JSバイナリツリーの事前順序、順序内、事後探索の実装方法

タッチイベントでのスライド距離の長さを取得する方法

以上がNode.jsとES6のexportsとmodule.exportsの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。