1. CommonJS
est utilisé pour la programmation modulaire côté serveur. Par exemple, nodejs adopte cette spécification
Un fichier est. un module , la méthode require est utilisée pour charger des modules. Cette méthode lit un fichier et l'exécute, et renvoie enfin l'objet module.exports à l'intérieur du fichier
require lit les fichiers .js ; par défaut, require (nom du module) n'a pas besoin d'être écrit avec un suffixe
est chargé de manière synchrone Puisque les modules chargés côté serveur sont généralement locaux, c'est OK. ; mais côté client, si un module est trop volumineux, cela entraînera une "fausse mort" de la page
L'attribut module.exports représente l'interface de sortie externe du ; module actuel. Lorsque d'autres fichiers chargent le module, ils lisent en fait la variable module.exports ; pour plus de commodité, vous pouvez utiliser exports, exports pointe vers module.exports ; c'est-à-dire exports = module.exports = {}
exports.xxx équivaut à ajouter des attributs à l'objet exporté, qui sont visibles par le module appelant ;
exports = équivaut à réaffecter les exports, ce qui réduit hors de l'association avec module.exports, et le module appelant ne peut pas accéder aux objets et propriétés des exportations
2 AMD
Charger le module ; : require([module], function(module){});
Définir le module : définir([module], function(module){});
require.js (une bibliothèque d'outils pour la gestion modulaire frontale) implémente les fichiers js. Le chargement asynchrone empêche les pages Web de perdre la réponse ; la gestion des dépendances entre les modules facilite l'écriture et la maintenance du code.
Pré-positionnement des dépendances, exécutez les blocs de dépendances du module le plus tôt possible, l'ordre d'exécution n'est pas nécessairement 1 d'abord puis 2
require.config({ baseUrl: "js/lib", paths: {"jquery": "jquery.min", "underscore": "underscore.min", "backbone": "backbone.min" }, shim: {'underscore':{ exports: '_' }, 'backbone': { deps: ['underscore', 'jquery'], exports: 'Backbone' } } }); // exports值(输出的变量名),表明这个模块外部调用时的名称;deps数组,表明该模块的依赖性
define(function(require, exports, module){ var a = require('a'); a.foo(); };
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!