ホームページ > 記事 > ウェブフロントエンド > JavaScript の基礎: パート 7
これは、この JavaScript シリーズ (全体の一部として) の 7 番目のパートです。このパートでは、プロジェクトを小さな部分に分割して、管理可能。ある種の関心事の分離を作成し、プロジェクトを魅力的でナビゲートしやすいものにします。何事にも美しい部分もあれば、もちろん醜い部分もあります。だから、やりすぎないでください。やる必要があるときにやってください。
前述したように、ここでの焦点は、プロジェクトの一部を別のファイルに分割し、エクスポートして、「メイン アプリ」にインポートすることです。現時点では、JavaScript でこれを行う方法が 2 つあります。 commonjs アプローチと ES6 のモジュラー アプローチを使用します。どれも素晴らしいので、両方見てみましょう。
指定しない場合は、commonjs によるインポートとエクスポートがデフォルトになります。これが、const readline = require("readline"); の方法です。 readline は組み込みパッケージです。このアプローチは、プロジェクトで記述されたサードパーティのパッケージまたはモジュールに使用できます。
計算を実行するプロジェクトから始めましょう。足し算と引き算を行う関数を作成します。この2つだけです。
{ "name": "cmodule", "version": "1.0.0", "main": "index.js", "type": "commonjs", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "description": "" }
function add(x, y) { // return the sum of x and y }
module.exports = add;
const lib = require("./lib"); // we did, "./lib", "dot slash lib", because main.js and lib.js are in the same folder. console.log(lib(1, 2));
function sub(x, y) { // returns the difference x and y }
これらの関数は自分で実装する必要がありますか?
問題は、サブをどのようにエクスポートするかです。試してみて、main.js
内にアクセスしてください。module.exports = X とすると、X はモジュール全体としてエクスポートされるため、const moduleName = require("moduleName"); をインポートすると、X に直接アクセスできることを理解してください。これと同じアプローチで別の値をエクスポートすることはできません。
このような場合、add と sub をグループ (オブジェクト) としてエクスポートすることで、両方をエクスポートできます。
{ "name": "cmodule", "version": "1.0.0", "main": "index.js", "type": "commonjs", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "description": "" }
function add(x, y) { // return the sum of x and y }
lib モジュールはオブジェクトとしてエクスポートされるため、 moduleName.add と moduleName.sub を実行できます。
const { add, sub } = require("./lib");
を構造化してインポートすることもできます。
module.exports = add;
const lib = require("./lib"); // we did, "./lib", "dot slash lib", because main.js and lib.js are in the same folder. console.log(lib(1, 2));
または
function sub(x, y) { // returns the difference x and y }
ES モジュール スタイルでのインポートとエクスポートは現在デフォルトではないため、 の type プロパティを "module" に設定して明示的に指定する必要があります。 package.json ファイル。この場合、「readline」から readline をインポートすることができます。 const readline = require("readline"); の代わりに。 const を import に置き換え、= と require を from に置き換えました。
ES モジュール スタイルのインポートとエクスポートを使用して、同様のプロジェクトを構築します。先ほどと同じように、加算と減算を行う関数を作成します。なので、今回はコピー&ペーストして大丈夫です。
module.exports = { add, sub };
2 つのファイル、lib.js と main.js を作成します: touch lib.js main.js
lib.js
に追加の本体を実装します。
{ "name": "cmodule", "version": "1.0.0", "main": "index.js", "type": "commonjs", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "description": "" }
function add(x, y) { // return the sum of x and y }
module.exports = add;
const lib = require("./lib"); // we did, "./lib", "dot slash lib", because main.js and lib.js are in the same folder. console.log(lib(1, 2));
function sub(x, y) { // returns the difference x and y }
module.exports = { add, sub };
const lib = require("./lib"); // lib is an object so we can do lib dot someThing console.log(lib.add(1, 2)); console.log(lib.sub(1, 2));
const { add, sub } = require("./lib"); console.log(add(1, 2)); console.log(sub(1, 2));
exports.add = function add(x, y) { // return the sum of x and y }; exports.sub = function sub(x, y) { // return the difference of x and y };
または
exports.add = function (x, y) { // return the sum of x and y }; exports.sub = function (x, y) { // return the difference of x and y };
{ "name": "emodule", "version": "1.0.0", "main": "index.js", "type": "module", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "description": "" }
または
function add(x, y) { // return the sum of x and y }
commonjs または es モジュールを使用する場合、インポートおよびエクスポートのスタイルは相対的です。 commonjs には設定が含まれていないため、なぜそのまま使用しないのかと疑問に思う人もいるでしょう。 module.exports = someObject は、エクスポートのデフォルトの someObject と同じです。 const someObject = require("pathToModule"); でインポートできます。そして、「pathToModule」から someObject をインポートします。どちらを選んでも大丈夫だと思います。同じファイル内にモジュール/デフォルトのエクスポートと個別のエクスポートを含めることができます。
バックエンド プロジェクトを開発するときに私が守るようにしているいくつかのルールがあります:
次に何が起こるかわかりますか?さて、バックエンドの魔法をいくつか始めます。バックエンドの開発を開始します。
それが難しい場合は、複数のファイルを使用してマスターマインド プログラムを書き換えてください。本題に沿って、私はあなたに挑戦します。このプロジェクトを完了します。動作するように書き直すか、動作させるためにやるべきことを何でもして、今日のレッスンを適用してください。
{ "name": "cmodule", "version": "1.0.0", "main": "index.js", "type": "commonjs", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "description": "" }
以上がJavaScript の基礎: パート 7の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。