Ich bin nur in Verwendung es 6 Module für Frontend-Entwicklung bekommen (wir überhaupt nicht verwenden Node), und frage mich, ob dieses Muster wir gekommen sind, bis alle Tücken hat oder wenn Sie haben Verbesserungsvorschläge. Ich nehme an, dass es einige Gründe für das aufschlussreiche Modulmuster in ES6-Modulen verwendet. Ich stelle diese Frage, weil die meisten es6 Modul "wie zu führen" Ich habe gesehen, etwas anderes zu tun, was ich am Ende der Frage notieren werde.ES6 Module + Aufdecken Modul Muster
Einige Dinge zu beachten:
- Wir (sind ziemlich sicher, dass wir) jedes Modul wollen nur eins exportieren. Dies wird als Best Practice in der Airbnb Style Guide aufgeführt sind, und wir haben festgestellt, nur es schön Gesamt beim Verzehr von NPM-Pakete
- Wir mögen Methoden mit „öffentlich“ und „privat“ zu benennen (denke, wir verwenden sollten _ für private Methoden wie die neuere best-Practice) ist, macht es einfach, zu sehen, was außerhalb des Moduls verfügbar ist
module.js:
// publicly available method
function publicHello() {
return 'Hello';
};
// publicly available method
function publicHelloWorld(){
const a = publicHello();
const b = privateProcessWorld(a);
return b;
};
// private method
function privateProcessWorld(x) {
return x + ' world';
};
// create an object to export, containing only the public methods
// note that we rename them here as well, making them easier to consume
const exp = {
h: publicHello,
hw: publicHelloWorld,
};
// export the object as default so it can be used in an unnamed import
export default exp;
das Modul zu verbrauchen:
import whatever from "module.js";
whatever.h(); // "Hello"
whatever.hw(); // "Hello world"
Was ich in den meisten gesehen haben „es6 Modul, wie man“ Führer ist dies:
var utils = {
generateRandom: function() {
return Math.random();
},
sum: function(a, b) {
return a + b;
}
};
export default utils;
Das zweite ist kürzer und enshures eine gute Struktur. Es gibt jedoch auch viele gute Anwendungsfälle für das erste Muster. Und statt 'public/private' ist es ein übliches Muster, um mit einem' _' oder '#' zu pivotieren, bevor –
@JonasW. Könnten Sie erweitern, was Sie unter "sorgt für eine gute Struktur" verstehen? Ich vermute, meine erste Frage in dieser Hinsicht wäre, wo private Methoden/vars gehen, über oder unter var utils? Auch ja, wir sollten sagen _ ist die beste Praxis; Als wir vor langer Zeit begannen, öffentlich/privat zu nutzen, haben wir unsere Wege nie geändert. – KayakinKoder
"* Wir möchten, dass jedes Modul nur eine Sache exportiert. Dies wird als Best Practice im Airbnb Style Guide aufgeführt." - Nein, Airbnb hat die Funktionsweise von Modulen missverstanden. [Bitte tun Sie das nicht] (https://stackoverflow.com/a/44373830/1048572). – Bergi