Documentos no oficiales, organice el texto y los ejemplos de sus propios documentos oficiales para una búsqueda rápida.
¿Por qué usar 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.
compatibilidad
Sea.js tiene casos de prueba completos y es compatible con todos los navegadores principales:
Chrome 3+
Firefox 2+
Safari 3.2+
Ópera 10+
Es decir, 5.5+
SEA.JS puede ejecutarse en el lado móvil, incluida la aplicación Hybrid Mode. En teoría, Sea.js puede funcionar con cualquier motor del navegador.
Seajs.ConfigObject
objeto de alias
Configuración de alias, después de la configuración, puede usar requerir requerir ('jQuery');
Seajs.config ({alias: {'jQuery': 'jQuery/jQuery/1.10.1/jQuery'}}); Define (función (requerir, exportaciones, módulo) {// Referencia JQuery Module var $ = require ('jQuery');});objeto de ruta
Establezca caminos para facilitar las llamadas de dirirectorio cruzado. Al configurar de manera flexible la ruta, puede especificar en un determinado directorio sin afectar la base.
Seajs.config ({// establece rutas de ruta: {'Gallery': 'https://a.alipayobjects.com/gallery'}, // Establezca alias para facilitar las llamadas a alias: {'subscribe': 'galería/subscore'}}); Definir (función (requerir, exportar, módulo) {var _ = require ('subscore'); // => el cargado es https://a.alipayobjects.com/gallery/underscore.js});objeto vars
Configuración variable. En algunos escenarios, la ruta del módulo solo se puede determinar durante el tiempo de ejecución, y la variable VARS se puede usar para configurarla.
VARS está configurado con el valor variable en el identificador del módulo, y la variable está representada por {Key} en el identificador del módulo.
Seajs.config ({// variable Configuración vars: {'locale': 'zh-cn'}}); Define (función (requerir, exportar, módulo) {var lang = request ('./ i18n/{loce} .js'); // => La cargada es ruta/a/i18n/zh-cn.js});matriz de mapas
Esta configuración puede mapear y modificar las rutas del módulo, y puede usarse para la conversión de ruta, depuración en línea, etc.
Seajs.config ({map: [['.js', '-debug.js']]}); Definir (función (requerir, exportar, módulo) {var a = require ('./ a'); // => La ruta cargada es ruta/a/a-debug.js});matriz de precarga
Usando el elemento de configuración de precarga, puede cargar e inicializar el módulo especificado con anticipación antes de cargar el módulo normal.
La cadena vacía en la precarga será ignorada.
// En los navegadores antiguos, cargue los módulos ES5 y JSON Seajs.config ({Preload: [function.prototype.bind? '': 'ES5-Safe', this.json? '': 'Json']});Nota: La configuración en precarga debe cargarse hasta su uso. Por ejemplo:
Seajs.config ({Preload: 'a'}); // Antes de cargar B, asegurará que el módulo A haya cargado y ejecutado SEAJS.USE ('./ B');La configuración de precarga no se puede colocar en el archivo del módulo:
marss.config ({preload: 'a'}); Definir (función (requerir, exportar) {// Al ejecutar aquí, no se puede garantizar que el módulo A se haya cargado y ejecutado});depurar booleano
Cuando el valor es verdadero, el cargador no elimina la etiqueta de script insertada dinámicamente. El complemento también puede decidir la salida del registro y otra información en función de la configuración de depuración.
cuerda base
SEA.js analizará el identificador de nivel superior en relación con la ruta base.
Nota: En general, no configure la ruta base. Poner mar.js en el camino apropiado a menudo es más simple y más consistente.
Charsetstring | Función
El atributo Charset de la etiqueta <script> o <link> al obtener el archivo del módulo. El valor predeterminado es UTF-8
Charset también puede ser una función:
Seajs.config ({Charset: function (url) {// Los archivos en el directorio xxx se cargan en la codificación de gbk if (url.indexof ('http://example.com/js/xxx') === 0) {return 'gbk';} // otros archivos están encodados en utf-8 regreso 'utf-8';};};SeAJS.Use Función
Se utiliza para cargar uno o más módulos en una página. Seajs.use (ID, devolución de llamada?)
// Cargue un módulo seaajs.use ('./ a'); // Cargue un módulo, ejecute llamado marajs.use ('./ a', function (a) {a.dosomthinghethething ();}); // cargue múltiples módulos, ejecute sellback seaajs.use (['./ a', './b'], function (a, b) {a.dosomom (); b.dosthing ();});});Nota: SeAJS.use no tiene nada que ver con el evento DOM Ready. Si ciertas operaciones se ejecutarán después de DOM Ready, debe usar bibliotecas de clase como jQuery para garantizar eso. Por ejemplo
Seajs.use (['jQuery', './main'], function ($, main) {$ (documento) .ader (function () {main.init ();});});Nota: El primer parámetro del método de uso debe estar presente, pero puede ser nulo o una variable
var bootstrap = ['bootstrap.css', 'bootstrap-fressive.css', 'bootstrap.js']; seaajs.use (bootstrap, function () {// do algo});Seajs.cache ojbect
A través de SEAJS.CACHE, puede verificar toda la información del módulo en el sistema del módulo actual.
Por ejemplo, abra Seaajs.org, y luego ingrese a Seajs.cache en el panel de la consola de las herramientas de desarrollador de WebKit, y puede ver:
Objeto> http://seajs.org/docs/assets/main.js: x> https://a.alipayobjects.com/jquery/jquery/1.10.1/jquery.js: x> __proto__: objeto: Object
Estos son los módulos utilizados en la página de inicio del documento. Expanda un elemento para ver la información específica del módulo. El significado se puede encontrar en la sección del módulo de la especificación de definición del módulo CMD.
Función de Seajs.Reslove
Similar a requerir.resolve, el mecanismo interno del sistema de módulos utilizará la resolución de ruta de los parámetros de cadena entrantes.
Seajs.resolve ('jQuery'); // => http: //path/to/jquery.jsseajs.resolve ('./a', 'http://example.com/to/b.js');///> http://example.com/.jsEl método SeAJS.Resolve no solo se puede usar para depurar si la resolución de ruta es correcta, sino también en el entorno de desarrollo de complementos.
objeto marino
A través de SEAJS.DATA, puede ver todas las configuraciones de SEAJS y los valores de algunas variables internas, que pueden usarse para el desarrollo de complementos. También se puede usar para depurar cuando se producen problemas de carga.
Preguntas frecuentes
Acerca de la identificación del módulo
Los identificadores del módulo SEAJS son principalmente pequeñas cuerdas de camello ,. o ..
// En la fábrica de http://example.com/js/a.js: request.resolve ('./ b'); // => http://example.com/js/b.js// En la fábrica de http://example.com/js/a.js: request.resolve ('../ c'); // => http://example.com/c.jsSe divide en logotipos relativos y de nivel superior. Si comienza con. o., es un identificador relativo. El pequeño interruptor de cadena de camello es el identificador de nivel superior.
// Suponga que la ruta base es: http://example.com/assets/// en el código del módulo: request.resolve ('Gallery/jQuery/1.9.1/jquery'); // => http://example.com/assets/gallery/jquery/1.9.1/jquery.jsSobre el camino
Además de ser una identificación de nivel relativamente alto, los SEAJ también pueden usar rutas normales para los módulos de carga.
Vamos al análisis de script de la página actual (puede hacer clic derecho para ver el código fuente)
//The path of sea.js, that is, the base path, is relative to the current page <script src="http://yslove.net/actjs/assets/sea-modules/seajs/2.1.1/sj.js"></script><script type="text/javascript">//Configure Seajsseajs.config({ alias: { //Top-level Identificación, basada en la ruta base 'actjs': 'actjs/core/0.0.7/core.js', // => http: // 'position': 'actjs/util/0.0.2/posicion.js'}}); seaajs.config ({alias: {// ruta normal, relativa a la página actual 'afijo': afijo:: afiJ ':: afiJ':: afiJ ':: afiJ':: afiJ ':: afiJ':: afijo ':: afijo':: afiJ ':: afiJ':: afijo ':: afijo':: afiJ ':: afijo':: afiJ ':: afiJ':: afijo ':: afiJ':: afiJ: '../../actjs/assets/widget/src/widget-affix.js', // identificador relativo, relativo a la página actual 'init': './src/init.js'}}); </script>Al principio, siento que el camino de los Seajs no está acostumbrado, porque es el camino base. Recuerde que la ruta base es la ruta superior del archivo en SEA.js, y luego todos los identificadores de nivel superior e identificadores relativos se ajustan en relación con esta base.