SeaJS est un cadre de chargement de module JavaScript qui suit la spécification CommonJS. Il s'agit d'un outil de chargement module moderne pour le développement Web, offrant une expérience modulaire simple et ultime. Sea.js est entretenu conjointement par Alibaba, Tencent et d'autres sociétés.
Avantages de l'utilisation de Sea.js:
Sea.js poursuit des méthodes d'écriture et d'organisation de code simples et naturelles, avec les caractéristiques de base suivantes:
Spécification de définition du module simple et convivial: Sea.js suit la spécification CMD et peut écrire du code du module comme node.js.
Organisation de code naturel et intuitif: le chargement automatique des dépendances et la configuration concise et claire nous permettent de profiter de plus de codage.
Sea.js fournit également des plugins communs, qui sont très utiles pour le débogage du développement et l'optimisation des performances, et ont de riches interfaces extensibles.
Ci-dessous, je présenterai les trois modules de Sea.js
Utiliser les exportations, les exportations sont un objet qui fournit des interfaces de module vers l'extérieur.
Define (fonction (require, exports, module) {var a = require ("./ init"); var fun1 = function () {return a.write ("module principal appelle la méthode d'écriture du module init");}; export.fun1 = fun1;});En plus d'ajouter des membres à l'objet Exports, vous pouvez également utiliser Retour pour fournir des interfaces directement à l'extérieur.
Define (fonction (require, exports, module) {var a = require ("./ init"); var fun1 = function () {return a.write ("module appelle la méthode d'écriture du module init");}; return {fun1: fun1}})Si le module n'a pas de logique métier, renvoyez simplement un objet, il peut être simplifié à ce qui suit
Define ({fun1: function () {alert ("fun1 appel du module principal avec succès")}});Une autre façon consiste à fournir une interface unifiée via module.exports, par exemple:
définir (fonction (require, exports, module) {var a = require ("./ init"); // est le répertoire actuel ../ est le répertoire supérieur / est le répertoire racine var fun1 = function () {return a.write ("module Main appelle la méthode d'écriture de module init");}; export.b = function () {// non signification, l'affectation est invalid, alert ("bb")}; module.exports = {fun1: fun1}});Les exportations ne sont qu'une référence à module.exports. Lors de la réaffectation des exportations à l'intérieur de la méthode, la valeur de module.exports n'est pas modifiée. Par conséquent, l'attribution de la valeur des exportations n'est pas valide. La méthode ci-dessus expose uniquement un FUR externe1. L'affectation B de la méthode ci-dessus n'est pas valide et ne peut pas être utilisée pour modifier l'interface du module.
export.async ()
require.async (id || [], rappel?)
La méthode requise.async est utilisée pour charger le module de manière asynchrone à l'intérieur du module et exécuter le rappel spécifié une fois le chargement terminé. Le paramètre de rappel est facultatif.
Définir (fonction (require, exports, module) {require.async ('./ init', fonction (a) {a.write ("module principal appelle la méthode d'écriture du module init")}); require.async (['./ init', "./ search"], function (a, b) {a.write ("module Les appels principaux de la méthode d'écriture du module init introduit ")});});Le module du module est un objet qui stocke certaines propriétés et méthodes associées au module actuel.
1 module.
Identification unique du module.
2 module.uri String
Le chemin du module absolu obtenu en fonction des règles d'analyse de chemin du système du module. Généralement, la valeur du module.id est module.uri, qui est exactement la même.
3 modules.Déprésences Array
Les dépendances sont un tableau représentant les dépendances du module actuel.