SeAJS es un marco de carga del módulo JavaScript que sigue a la especificación CommonJS. Es una herramienta de carga de módulos moderna para el desarrollo web, que proporciona una experiencia modular simple y definitiva. SEA.JS es mantenido conjuntamente por Alibaba, Tencent y otras compañías.
Beneficios del uso de SEA.js:
SEA.JS persigue métodos de organización y escritura de código simple y natural, con las siguientes características principales:
Especificación de definición del módulo simple y amigable: SEA.JS sigue la especificación CMD y puede escribir código de módulo como node.js.
Organización del código natural e intuitivo: la carga automática de dependencias y la configuración concisa y clara nos permite disfrutar de una mayor codificación.
SEA.JS también proporciona complementos comunes, que son muy útiles para la depuración del desarrollo y la optimización del rendimiento, y tienen interfaces extensibles ricas.
A continuación presentaré los tres módulos de mar.js
Usar exportaciones, exportaciones es un objeto que proporciona interfaces de módulo al exterior.
Definir (función (requerir, exportar, módulo) {var a = require ("./ init"); var fun1 = function () {return a.write ("módulo las llamadas principales el método de escritura de init");}; exports.fun1 = fun1;});Además de agregar miembros al objeto de exportaciones, también puede usar el retorno para proporcionar interfaces directamente al exterior.
Definir (función (requerir, exportar, módulo) {var a = require ("./ init"); var fun1 = function () {return a.write ("módulo principal llamas al método de escritura de init");}; return {diversh1: divers1}})Si el módulo no tiene ninguna lógica comercial, simplemente devuelva un objeto, se puede simplificar a lo siguiente
Define ({Fun1: function () {Alert ("Fun1 Call of Module Main con éxito")}});Otra forma es proporcionar una interfaz unificada a través de Module.Exports, por ejemplo:
define(function(require,exports,module){var a = require("./init");// is the current directory../ is the upper directory/is the root directory var fun1 = function () {return a.write("module main calls the write method of module init");};exports.b=function(){ //No meaning, the assignment is invalid, alerta ("bb")}; module.exports = {FUN1: FUN1}});Exports es solo una referencia a Module.Exports. Al reasignar las exportaciones dentro del método, el valor de Module.Exports no cambia. Por lo tanto, asignar el valor de exportaciones no es válido. El método anterior solo expone una diversión externa1. La asignación del método B anterior no es válida y no se puede usar para cambiar la interfaz del módulo.
exports.async ()
require.async (id || [], devolución de llamada?)
El método request.async se usa para cargar el módulo asincrónicamente dentro del módulo y ejecutar la devolución de llamada especificada después de que se complete la carga. El parámetro de devolución de llamada es opcional.
Define (función (requerir, exportaciones, módulo) {request.async ('./ init', function (a) {a.write ("módulo principal llamadas el método de escritura de módulo init")}); request.async (['./ init', "./ Buscar"], función (a, b) {a.write ("Módulo principal de la escritura del método de escritura de module init"); B.Sear introducido ")});});El módulo del módulo es un objeto que almacena algunas propiedades y métodos asociados con el módulo actual.
1 cadena de módulo.id
Identificación única del módulo.
2 módulo.uri cadena
La ruta del módulo absoluto obtenida de acuerdo con las reglas de análisis de ruta del sistema del módulo. En general, el valor de Module.id es Module.uri, que es exactamente el mismo.
3 módulo. Dependencias Array
Las dependencias son una matriz que representa las dependencias del módulo actual.