O SEAJS é uma estrutura de carregamento do módulo JavaScript que segue a especificação Commonjs. É uma ferramenta moderna de carregamento de módulos para o desenvolvimento da Web, fornecendo uma experiência modular simples e final. O SEA.JS é mantido em conjunto por Alibaba, Tencent e outras empresas.
Benefícios do uso de Sea.js:
Sea.js busca métodos simples e naturais de redação e organização, com os seguintes recursos principais:
Especificação de definição de módulo simples e amigável: Sea.js segue a especificação CMD e pode escrever código do módulo como o Node.js.
Organização de código natural e intuitiva: o carregamento automático de dependências e a configuração concisa e clara nos permitem desfrutar de mais codificação.
O SEA.JS também fornece plugins comuns, que são muito úteis para depuração de desenvolvimento e otimização de desempenho, e têm interfaces extensíveis ricas.
Abaixo, apresentarei os três módulos de Sea.js
Use exportações, exportações é um objeto que fornece interfaces do módulo para o exterior.
define (função (requer, exporta, módulo) {var a = requer ("./ init"); var fun1 = function () {return a.Write ("Módulo principal chama o método de gravação do módulo init");}; exports.fun1 = fun1;});Além de adicionar membros ao objeto Exportação, você também pode usar o retorno para fornecer interfaces diretamente para o exterior.
define (função (requer, exporta, módulo) {var a = requer ("./ init"); var fun1 = function () {return a.Write ("Módulo principal chama o método de gravação do módulo init");}; return {fun1: fun1}})Se o módulo não tiver lógica de negócios, basta devolver um objeto, ele pode ser simplificado para o seguinte
define ({fun1: function () {alert ("Fun1 Call of Module main com sucesso")}});Outra maneira é fornecer uma interface unificada através do Module.Exports, por exemplo:
Definir (função (requer, exporta, módulo) {var a = requer ("./ init"); // é o diretório atual ../ é o diretório superior/é o diretório raiz var fun1 = function () {return a.Write ("Módulo principal chama o método de gravação do módulo init");}; exports.b = function () {/ não significado, o significado, o atribuído, o atribuído "; alert ("bb")}; module.exports = {fun1: fun1}});As exportações são apenas uma referência ao Module.Exports. Ao reatribuir as exportações dentro do método, o valor do Module.Exports não é alterado. Portanto, atribuir o valor das exportações é inválido. O método acima expõe apenas um FURS externo1. A atribuição do método B acima é inválida e não pode ser usada para alterar a interface do módulo.
exports.async ()
requer.async (id || [], retorno de chamada?)
O método reque.async é usado para carregar o módulo de forma assíncrona dentro do módulo e executar o retorno de chamada especificado após a conclusão do carregamento. O parâmetro de retorno de chamada é opcional.
define (função (requer, exporta, módulo) {require.async ('./ init', function (a) {a.Write ("Módulo principal chama o método de gravação do módulo init")}); require.async (['. introduzido ")});});O módulo do módulo é um objeto que armazena algumas propriedades e métodos associados ao módulo atual.
1 módulo.id string
Identificação exclusiva do módulo.
2 module.uri string
O caminho absoluto do módulo obtido de acordo com as regras de análise do caminho do sistema de módulos. Geralmente, o valor do módulo.id é o módulo.uri, o que é exatamente o mesmo.
3 Module.Dependências Array
Dependências é uma matriz que representa as dependências do módulo atual.