SEAJS는 CommonJS 사양을 따르는 JavaScript 모듈로드 프레임 워크입니다. 웹 개발을위한 최신 모듈 로딩 도구로 간단하고 궁극적 인 모듈 식 경험을 제공합니다. SEA.JS는 Alibaba, Tencent 및 기타 회사에 의해 공동으로 유지됩니다.
Sea.js 사용의 이점 :
SEA.JS는 다음과 같은 핵심 기능을 갖춘 간단하고 자연스러운 코드 쓰기 및 조직 방법을 추구합니다.
간단하고 친근한 모듈 정의 사양 : Sea.js는 CMD 사양을 따르고 node.js와 같은 모듈 코드를 쓸 수 있습니다.
자연스럽고 직관적 인 코드 구성 : 종속성의 자동로드 및 간결하고 명확한 구성을 통해 더 많은 코딩을 즐길 수 있습니다.
SEA.JS는 또한 개발 디버깅 및 성능 최적화에 매우 유용한 공통 플러그인을 제공하며 풍부한 확장 가능한 인터페이스를 제공합니다.
아래에는 Sea.js의 세 가지 모듈을 소개합니다
수출 사용, 내보내기는 외부에 모듈 인터페이스를 제공하는 객체입니다.
define (함수 (요구, 내보내기, 모듈) {var a = 요구 ( "./ init"); var fun1 = function () {return A.Write ( "모듈 메인은 모듈의 쓰기 메소드를 호출";}; exports.fun1 = fun1;});Exports Object에 멤버를 추가하는 것 외에도 반환을 사용하여 외부에 직접 인터페이스를 제공 할 수도 있습니다.
define (함수 (요구, 내보내기, 모듈) {var a = 요구 사항 ( "./ init"); var fun1 = function () {return A.Write ( "모듈 메인은 모듈의 쓰기 메소드를 호출";}; return {fun1 : fun1}})모듈에 비즈니스 로직이없는 경우 객체를 반환하면 다음을 단순화 할 수 있습니다.
define ({fun1 : function () {alert ( "fun1 module main"}});또 다른 방법은 모듈을 통해 통합 인터페이스를 제공하는 것입니다.
define (function (요구, 내보내기, 모듈) {var a = require ( "./ init"); // 현재 디렉토리입니다 ../ 상단 디렉토리는 루트 디렉토리입니다. var fun1 = function () {return A.Write ( "모듈 메인은 모듈의 쓰기 메소드를 호출");}; exports.b = function () {// 할당되지 않습니다. alert ( "bb")}; module.exports = {fun1 : fun1}});내보내기는 모듈에 대한 참조 일뿐입니다. 메소드 내에서 내보내기를 재 할 때 Module.Exports의 값이 변경되지 않습니다. 따라서 수출 값을 할당하는 것이 유효하지 않습니다. 위의 방법은 외부 fun을 노출시킵니다 1. 위의 방법 B 할당은 유효하지 않으며 모듈 인터페이스를 변경하는 데 사용할 수 없습니다.
Exports.async ()
require.async (id || [], 콜백?)
요구 사항은 모듈 내부에 모듈을 비동기로로드하고로드가 완료된 후 지정된 콜백을 실행하는 데 사용됩니다. 콜백 매개 변수는 선택 사항입니다.
define (function (요구, 내보내기, 모듈) {require.async ( './ init', function (a) {a.write ( "모듈 메인은 모듈의 쓰기 메소드"); require.async ([ './ init', "./ search"], function (a, b) {a.write ( "검색 moducly init ("b.search init ( "); 소개 ")});});모듈 모듈은 현재 모듈과 관련된 일부 속성 및 메소드를 저장하는 객체입니다.
1 module.id 문자열
모듈의 고유 식별.
2 module.uri 문자열
모듈 시스템의 경로 분석 규칙에 따라 얻은 절대 모듈 경로. 일반적으로 module.id의 값은 module.uri이며 정확히 동일합니다.
3 MODULE.DENGENCIES ARRAY
종속성은 현재 모듈의 종속성을 나타내는 배열입니다.