Cómo entender la programación modular de requirejs
1. Programación modular Javascript
Actualmente, existen dos especificaciones de módulos Javascript populares: CommonJS y AMD.
1. commonjs
En 2009, el programador estadounidense Ryan Dahl creó el proyecto node.js, utilizando el lenguaje JavaScript para la programación del lado del servidor. Esto marcó el lanzamiento oficial de la "programación modular Javascript". " Nacimiento.
En un entorno de navegador, la falta de módulos no es un problema particularmente grande. Después de todo, la complejidad de los programas de la página web es limitada, pero en el lado del servidor, debe haber módulos para interactuar con el sistema operativo. sistema y otras aplicaciones; de lo contrario, no hay forma de programar en absoluto.
El sistema de módulos de node.js se implementa con referencia a la especificación CommonJS. En CommonJS, existe un método global require() para cargar módulos.
Supongamos que hay un módulo matemático math.js, que se puede cargar de la siguiente manera.
var math = require('math');
Luego, puedes llamar al método proporcionado por el módulo:
var math = require('math ') ;
math.add(2,3); // 5
Debido a que esta serie está dirigida principalmente a la programación de navegadores y no involucra node.js, no habrá Introducción a CommonJS. Todo lo que necesitamos saber aquí es que require() se usa para cargar módulos.
2. AMD
AMD es la abreviatura de "Definición de módulo asíncrono", que significa "definición de módulo asíncrono". Carga módulos de forma asincrónica y la carga del módulo no afecta la ejecución de declaraciones posteriores. Todas las declaraciones que dependen de este módulo se definen en una función de devolución de llamada. Esta función de devolución de llamada no se ejecutará hasta que se complete la carga.
Definición del módulo
define(id?, dependencias?, factory);
Entre ellos:
id: identificación del módulo, cual se puede omitir.
dependencias: módulos de los que depende, que se pueden omitir.
fábrica: implementación de un módulo o un objeto JavaScript.
Carga de módulos
AMD también utiliza la instrucción require() para cargar módulos, pero a diferencia de CommonJS, requiere dos parámetros:
require([módulo], callback);
El primer parámetro [módulo] es una matriz, cuyos miembros son los módulos que se cargarán; el segundo parámetro de devolución de llamada es la función de devolución de llamada después de una carga exitosa. Si el código anterior se reescribe en formato AMD, se verá así:
require(['math'], function (math) {
math.add(2, 3 );
});
math.add() y la carga del módulo matemático no están sincronizados y el navegador no se congelará. Obviamente, AMD es más adecuado para el entorno del navegador.
Actualmente, existen dos bibliotecas principales de Javascript que implementan la especificación AMD: require.js y curl.js. La tercera parte de esta serie explicará con más detalle el uso de AMD y cómo poner en práctica la programación modular mediante la introducción de require.js.
2. Programación modular de requirejs
Los módulos cargados por require.js adoptan la especificación AMD (Especificación de definición de módulo asíncrono). En otras palabras, el módulo debe escribirse según las normas de AMD.
Dos características importantes de require.js:
1. Carga asincrónica de archivos js para evitar la pérdida de respuesta de la página web
2 Dependencias entre módulos de gestión. facilitar la escritura y el mantenimiento del código
Cargar requirejs: