Sobes.tech
Junior

Ce sunt modulele ES?

sobes.tech AI

Răspuns de la AI

Modulele ES sunt metoda standard de organizare a codului în JavaScript, bazată pe sintaxa import și export.

Caracteristici principale:

  • Standard: Parte a specificației ECMAScript, suportată de majoritatea browserelor moderne și mediilor de execuție precum Node.js.
  • Gestionare explicită a dependențelor: Modulele indică clar valorile pe care le exportă și valorile pe care le importă din alte module.
  • Structură statică: Dependențele modulelor sunt determinate în timpul compilării (sau analizei), nu în timpul execuției. Acest lucru permite instrumentelor de analiză statică, precum bundlerele (Webpack, Rollup), să optimizeze codul.
  • Izolare: Fiecare variabilă, funcție sau clasă declarată în interiorul unui modul este, implicit, locală pentru acel modul. Pentru a fi accesibile din exterior, trebuie exportate explicit.
  • Suport pentru asincronie: Modulele pot fi încărcate asincron în browsere, fără a bloca încărcarea paginii.

Sintaxă:

  • Export:
    // app.js
    export const myVariable = 123; // Export numit
    export function myFunction() { // Export numit
      console.log('Salut din modul!');
    }
    export default class MyClass { // Export implicit
      constructor() {
        console.log('Instanță MyClass creată');
      }
    }
    
  • Import:
    // main.js
    import { myVariable, myFunction } from './app.js'; // Import numit
    import MyDefaultClass from './app.js'; // Import implicit
    
    console.log(myVariable); // 123
    myFunction(); // Salut din modul!
    const instance = new MyDefaultClass(); // Instanță MyClass creată
    

Comparativ cu CommonJS (Node.js):

Caracteristici Modulele ES CommonJS
Sintaxă import, export require, module.exports, exports
Dependențe Statice (determinată înainte de execuție) Dinamice (determinată în timpul execuției)
Încărcare Asincronă (în browser) Sincronă
this în rădăcină undefined module.exports
Suport Browsere, Node.js (din versiunea 13.2, cu flag-ul --experimental-modules anterior) În principal Node.js

Utilizarea modulelor ES este abordarea recomandată pentru dezvoltarea frontend modern datorită standardizării, suportului mai bun din partea instrumentelor și capacității de analiză statică.