Maison  >  Article  >  interface Web  >  Comprenons la différence entre CJS et MJS

Comprenons la différence entre CJS et MJS

WBOY
WBOYoriginal
2024-09-05 21:00:04619parcourir

Let

Les termes CJS (CommonJS) et MJS (ES Module) font référence à deux systèmes de modules utilisés en JavaScript pour organiser le code en composants réutilisables. . Voici une comparaison entre les deux :

1. CommonJS (CJS)

  • Syntaxe : CommonJS utilise require() pour charger des modules et module.exports ou exports pour les exporter.
  • Utilisé dans : C'est le système de modules principalement utilisé dans Node.js avant l'introduction des modules ES.
  • Chargement synchrone : Les modules CommonJS sont chargés de manière synchrone, ce qui signifie qu'ils bloquent l'exécution jusqu'à ce que le module soit chargé. Ceci est idéal pour les applications côté serveur mais moins adapté au code côté client où le chargement asynchrone est préféré.
  • Exemple :

     // Import
     const fs = require('fs');
    
     // Export
     module.exports = function () {
       console.log("Hello from CJS");
     };
    

2. Modules ES (MJS)

  • Syntaxe : Les modules ES utilisent des instructions d'importation et d'exportation.
  • Utilisé dans : Environnements JavaScript modernes, à la fois dans les navigateurs et dans Node.js (avec l'extension .mjs ou en utilisant "type": "module" dans package.json).
  • Chargement asynchrone : les modules ES sont chargés de manière asynchrone, ce qui est mieux adapté aux environnements côté client.
  • Exemple :

     // Import
     import fs from 'fs';
    
     // Export
     export function greet() {
       console.log("Hello from MJS");
     }
    

Principales différences :

  1. Mécanisme de chargement :

    • CJS : Les modules sont chargés de manière synchrone.
    • MJS : Les modules sont chargés de manière asynchrone, ce qui les rend non bloquants et plus efficaces dans certains scénarios (notamment dans le navigateur).
  2. Syntaxe :

    • CJS : Utilise require() et module.exports.
    • MJS : Utilise l'importation et l'exportation.
  3. Compatibilité :

    • CJS : Largement pris en charge dans Node.js, mais moins compatible avec les navigateurs (sans bundlers).
    • MJS : Prise en charge native dans les navigateurs modernes et Node.js (à partir de la version 12+), s'alignant sur le standard du module ES6.
  4. Exportations par défaut :

    • CJS : Peut exporter un objet ou une fonction directement sous forme de module.
    • MJS : Prend en charge les exportations nommées et par défaut, permettant plus de flexibilité dans l'exportation de plusieurs fonctions ou valeurs.

Quand utiliser :

  • CJS (CommonJS) : Si vous travaillez avec des projets Node.js plus anciens ou des bibliothèques existantes basées sur le système de modules CommonJS.
  • MJS (Modules ES) : Lors de la création d'applications modernes, en particulier pour le développement côté client ou les projets Node.js qui ciblent les environnements d'exécution modernes.

Dans le développement moderne, les modules ES deviennent la norme, mais de nombreux projets existants reposent toujours sur CommonJS.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn