Dies ist der 7. Teil dieser JavaScript-Serie (als Teil des Ganzen) und in diesem Teil werden wir uns damit befassen, wie wir unsere Projekte in kleine Teile zerlegen können, damit sie entstehen überschaubar. Wir werden eine Art Interessenstrennung schaffen, die unser Projekt ansprechend und einfach zu navigieren macht. In allen Dingen gibt es einen schönen Teil und natürlich auch einen hässlichen Teil. Übertreiben Sie es also nicht. Tun Sie es, wenn es nötig ist.
Wie bereits erwähnt, liegt unser Fokus hier darauf, einen Teil unseres Projekts in eine separate Datei aufzuteilen, sie zu exportieren und sie dann in unsere „Haupt-App“ zu importieren. Derzeit gibt es in JavaScript zwei Möglichkeiten, dies zu tun. Verwendung des commonjs-Ansatzes und auch des modularen Ansatzes des ES6. Sie sind alle großartig und wir werden uns beide ansehen.
Der Import und Export mit commonjs ist die Standardeinstellung, wenn nicht anders angegeben. So könnten wir es machen: const readline = require("readline");. readline ist ein integriertes Paket. Wir können diesen Ansatz für die in unserem Projekt geschriebenen Pakete oder Module von Drittanbietern verwenden.
Beginnen wir mit einem Projekt, bei dem wir etwas Mathe durchführen. Wir werden Funktionen zum Addieren und Subtrahieren erstellen. Nur diese beiden.
{ "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 }
Sie sollen diese Funktionen selbst implementieren?
Die Frage ist, wie exportieren wir Subs? Probieren Sie es aus und greifen Sie in main.js
darauf zuWissen Sie, dass, wenn wir module.exports = X tun, X als ganzes Modul exportiert wird. Wenn wir also const moduleName = require("moduleName"); importieren, erhalten wir direkten Zugriff auf Mit diesem gleichen Ansatz kann kein anderer Wert exportiert werden.
In einem solchen Fall können wir sowohl Add als auch Sub exportieren, indem wir sie als Gruppe (Objekt) exportieren.
{ "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 }
Das Modul lib wird als Objekt exportiert, sodass wir moduleName.add und moduleName.sub.
ausführen können
Wir können den Import auch durch Destrukturieren durchführen, 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));
Oder
function sub(x, y) { // returns the difference x and y }
Der Import und Export mit dem ES-Modulstil ist derzeit nicht die Standardeinstellung und muss daher explizit angegeben werden, indem die Eigenschaft type im auf "module" gesetzt wird package.json-Datei. In diesem Fall könnten wir readline aus „readline“ importieren; statt const readline = require("readline");. Wir haben const durch import, = und require durch from.
ersetztWir werden ein ähnliches Projekt mit dem ES-Modulstil für Import und Export erstellen. Wir werden wie zuvor Funktionen zum Addieren und Subtrahieren erstellen. Dieses Mal können Sie es also kopieren und einfügen.
module.exports = { add, sub };
Erstellen Sie zwei Dateien, lib.js und main.js: Berühren Sie lib.js main.js
Implementieren Sie den Text für das Add in der 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 };
Oder
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": "" }
ODER
function add(x, y) { // return the sum of x and y }
Der Import- und Exportstil für die Verwendung von CommonJS- oder ES-Modulen ist relativ. commonjs wird ohne Konfigurationen geliefert, daher würde man sich fragen, warum man es nicht so verwenden sollte, wie es ist. module.exports = someObject ist dasselbe wie export default someObject. Wir können mit const someObject = require("pathToModule"); importieren. und importiere someObject aus „pathToModule“;. Wie gesagt, was auch immer Sie wählen, es ist in Ordnung. Sie können einen Modul-/Standardexport und auch einzelne Exporte in derselben Datei durchführen.
Dies sind einige Regeln, die ich bei der Entwicklung meiner Backend-Projekte einzuhalten versuche:
Kannst du erraten, was als nächstes kommt? Nun, wir würden anfangen, ein paar Backend-Zaubereien durchzuführen. Wir werden mit der Backend-Entwicklung beginnen.
Wenn es Sie herausfordert, schreiben Sie das Mastermind-Programm mit mehreren Dateien neu. Während ich mich mit dem Thema befasse, werde ich Sie herausfordern. Schließen Sie dieses Projekt ab. Schreiben Sie es entweder um, damit es funktioniert, oder tun Sie alles, was Sie tun müssen, damit es funktioniert, und wenden Sie die heutige Lektion an.
{ "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": "" }
Das obige ist der detaillierte Inhalt vonJavaScript-Grundlagen: Teil 7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!