모듈 관리의 간단 한 실현
3973 단어 자바 script
Keep It Simple,Stupid
Q&A
1. 왜 이런 물건 이 있 을 까?
당신 의 코드 를 편리 하 게 조직 하여 프로젝트 의 유지 가능성 을 높 입 니 다.한 프로젝트 의 유지 가능성 이 높 지 않 고 프로그래머 의 수준 도 나타 내 는데 지금 은 점점 복잡 해 지 는 전단 프로젝트 라 는 점 이 특히 중요 하 다.
2. 왜 requirejs, seajs 등 을 필요 로 하지 않 습 니까?
그들의 기능 은 강하 지만 파일 의 부피 가 문제 입 니 다. 그 밖 에 업무 가 가끔 복잡 하지 않 을 수도 있 습 니 다. 처음에 말 한 것 처럼 keep it simple
3. 아래 의 실현 은 어디에서 왔 습 니까?
이것들 은 requirejs, seajs, comonjs 등의 실현 을 참고 하여 실제 프로젝트 에 사용 되 고 안정 적 인 운행 에 사용 되 며 효과 가 좋다.
4. 필드 적용
4. 567917. 모 바 일 페이지 는 js 를 html 페이지 에 주입 하면 모듈 로 딩 문 제 를 고려 하지 않 아 도 되 고 많은 코드 를 절약 하여 실현 에 있어 더욱 간단 합 니 다
4. 567917. 다 중 파일 로 딩 이 라면 파일 로 딩 순 서 를 수 동 으로 실행 해 야 합 니 다. 그러면 라 이브 러 리 로 의존 관 리 를 하 는 것 이 좋 습 니 다
이루다
(function(global){
var modules = {};
var define = function (id,factory) {
if(!modules[id]){
modules[id] = {
id : id,
factory : factory
};
}
};
var require = function (id) {
var module = modules[id];
if(!module){
return;
}
if(!module.exports){
module.exports = {};
module.factory.call(module.exports,require,module.exports,module);
}
return module.exports;
}
global.define = define;
global.require = require;
})(this);
사용 예시
define('Hello',function(require,exports,module){
function sayHello() {
console.log('hello modules');
}
module.exports = {
sayHello : sayHello
}
});
var Hello = require('Hello');
Hello.sayHello();
이루다
function Module(main,factory){
var modules = {};
factory(function(id,factory){
modules[id] = {
id : id,
factory : factory,
}
});
var require = function (id) {
var module = modules[id];
if(!module){
return;
}
if(!module.exports){
module.exports = {};
module.factory.call(module.exports,require,module.exports,module);
}
return module.exports;
}
window.require = require;
return require(main);
}
사용 예시
Module('main',function(define){
define('Hello',function(require,exports,module){
function sayHello () {
console.log('hello');
}
//
module.exports = {
sayHello : syaHello;
}
//
exports.sayHello = sayHello;
});
//mian,
define('main',function(require,exports,module){
var Hello = require('Hello');
Hello.sayHello();
});
});
이루다
다른 스타일 의 모듈 관리
(function(global) {
var exports = {}; //
var modules = {}; //
global.define = function (id,factory) {
modules[id] = factory;
}
global.require = function (id) {
if(exports[id])return exports[id];
else return (exports = modules[id]());
}
})(this);
사용 예시
define('Hello',function(require,exports,module){
function sayHello() {
console.log('hello modules');
}
//
return {
sayHello : sayHello
};
});
var Hello = require('Hello');
Hello.sayHello();
실천 하 다.
간단 하고 간단 한 모듈 화 관리 가 있 으 면 프로젝트 에서 우 리 는 이런 구 조 를 채택 할 수 있다.
-- proj
-- html
-- index.html
-- css
-- js
-- common
-- module1.js( 1)
-- module2.js( 2)
-- page
-- index.js( )
-- lib
-- moduler.js
전단 구축 도구 (wepack, grunt, gulp 등) 에 맞 춰 이동 단 페이지 를 구축 할 수 있 습 니 다.
총결산
오늘날 의 틀 은 매우 많 고 할 수록 방대 하 다.프레임 워 크 는 일반적으로 통용 성 을 고려 하 는데 더욱 정교 해 지 는 프로젝트 에 있어 서 가끔 은 스스로 관건 적 인 점 을 실현 해 야 할 수도 있 고 학습 의 원천 은 바로 이런 소 가 강요 하 는 프레임 워 크 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thymeleaf 의 일반 양식 제출 과 AJAX 제출텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.