Sobes.tech
Junior

Mis on ES-moodulid?

sobes.tech AI

Vastus AI-lt

ES moodulid on JavaScripti standardne viis koodi korraldamiseks, mis põhineb import ja export süntaksil.

Peamised omadused:

  • Standard: Osa ECMAScripti spetsifikatsioonist, mida toetavad enamik kaasaegseid brauserid ja täitmis- või käituskeskkonnad, nagu Node.js.
  • Selge sõltuvuste haldamine: Moodulid näitavad selgelt, milliseid väärtusi nad ekspordivad ja milliseid impordivad teistest moodulitest.
  • Statiline struktuur: Moodulite sõltuvused määratletakse kompileerimise (või parsingu) etapis, mitte täitmise ajal.
  • Isolatsioon: Iga muutuja, funktsioon või klass, mis on moodulis deklareeritud, on vaikimisi lokaalne sellele moodulile. Nende kättesaadavaks tegemiseks väljaspool tuleb need selgelt eksportida.
  • Asünkroonne tugi: Mooduleid saab brauserites asünkroonselt laadida, ilma lehe laadimist blokeerimata.

Süntaks:

  • Eksport:
    // app.js
    export const myVariable = 123; // Nimetatud eksport
    export function myFunction() { // Nimetatud eksport
      console.log('Hello from module!');
    }
    export default class MyClass { // Vaikimisi eksport
      constructor() {
        console.log('MyClass instance created');
      }
    }
    
  • Import:
    // main.js
    import { myVariable, myFunction } from './app.js'; // Nimetatud import
    import MyDefaultClass from './app.js'; // Vaikimisi import
    
    console.log(myVariable); // 123
    myFunction(); // Hello from module!
    const instance = new MyDefaultClass(); // MyClass eksemplar loodud
    

Võrdlus CommonJS-iga (Node.js):

Omadus ES-moodulid CommonJS
Süntaks import, export require, module.exports, exports
Sõltuvused Statilised (määratud enne täitmist) Dynaamilised (määratud täitmise ajal)
Laadimine Asünkroonne (brauserites) Sünkroonne
this põhjalik undefined module.exports
Toetus Brauserid, Node.js (vaikimisi alates versioonist 13.2, --experimental-modules lipuga varem) Peamiselt Node.js

ES-moodulite kasutamine on soovitatav lähenemine kaasaegses frontend arendamises nende standardiseerimise, parema tööriistade toe ja staatilise analüüsi võimaluste tõttu.