내부 아키텍처 및 개념으로 나뉘어지면 JavaScript 프레임 워크를 5 가지 범주로 나눌 수 있습니다.
유형 1
나타나는 것은 네임 스페이스 지향 클래스 라이브러리 또는 프레임 워크입니다. 예를 들어, 배열을 만들고 새 배열 ()을 사용하고 새 개체 ()로 객체를 생성하면 완전히 Java 스타일입니다. 따라서 객체를 루트로 사용하고 코드를 구성하여 피라미드처럼 쌓기 위해 객체 속성 또는 보조 객체 속성을 지속적으로 추가 할 수 있습니다. 초기 Yui 및 Ext.
유형 2
유명한 프로토 타입 및 Mootools, Base2 및 Ten과 같은 공장 중심의 프레임 워크입니다. 기본적으로 가장 기본적인 네임 스페이스를 제외하고 다른 모듈은 클래스 공장에서 파생 된 클래스 객체입니다. 특히 mootools 1.3은 모든 유형을 유형 유형으로 캡슐화합니다.
타입 3
jQuery로 표시되는 선택기 지향 프레임 워크입니다. 전체 프레임 워크 또는 라이브러리 본문은 특수 클래스 배열 객체로, 수집 작업에 편리합니다. 선택기는 일반적으로 N 요소 노드를 한 번에 선택하므로 함께 처리되기 때문입니다. jQuery는 몇 가지 놀라운 것들을 포함합니다. "새없는 인스턴스화"기술, $ (expr)는 명시 적으로 새로운 인스턴스를 반환하는 것입니다. 먼저 모든 액세스 규칙을 설정하십시오 : 데이터 캐싱 시스템. 이런 식으로 노드의 이벤트를 복제 할 수 있습니다. 또한, iife (즉시 투쟁 기능 표현)도 발견되었습니다.
유형 4
로더로 연결된 프레임 워크입니다. 모두 여러 JavaScript 파일이 있으며 각 JavaScript 파일에는 고정 규칙이 작성됩니다. 가장 유명한 것은 AMD입니다. 모듈성은 JavaScript가 산업화로 이동하고 있다는 신호입니다. "UNIX 프로그래밍 아트"에 나열된 많은 "골든 규칙"중 첫 번째는 모듈입니다. "실패하지 않고 복잡한 소프트웨어를 작성하는 유일한 방법은 여러 간단한 모듈을 명확하게 정의 된 인터페이스와 결합하는 것입니다. 이러한 방식으로 대부분의 문제는 지역에서만 발생하지 않고 지역 영역을 개선하거나 최적화하려는 희망이 있습니다." 기업의 많은 내부 프레임 워크는 기본적으로 Dojo, Yui, Kissy, Qwrap 및 Mass와 같은이 아키텍처를 채택합니다.
유형 5
명확한 계층 구조가있는 MV* 프레임 워크입니다. 먼저, JavaScript MVC (현재 Canjs라고 함), Backbonejs 및 Spinejs, 그리고 녹아웃, Ember, Angular, Avalon 및 Winjs와 같은 실제 프론트 엔드 MVVM 프레임 워크와 일치합니다. MVVM 프레임 워크에서 원래 DOM 운영은 선언적 바인딩으로 대체되며 프레임 워크 자체에 의해 처리되며 사용자는 비즈니스 코드에만 집중하면됩니다.
아래는 프레임 워크의 특성에 대한 결론입니다.
기본 데이터 유형에 대한 작업은 기본입니다. 예를 들어, JQuery는 Trim, Camelcase, 각, 맵 등과 같은 방법 및 Procipotype.js와 같은 침습성 프레임 워크를 제공합니다.
유형의 결정은 필수적이며 일반적인 형식은 ISXXX 시리즈입니다.
Selectors, Domready 및 Ajax는 최신 프레임 워크의 표준 기능입니다.
DOM 운영이 최우선 과제입니다. 노드, 스타일 작업 및 속성 작업의 이동은 범위에 속합니다. 세분화 여부는 프레임 워크의 크기에 따라 다릅니다.
Brower Sniff는 구식이며 기능 감지가 적용되고 있습니다. 그러나 기능 감지에는 여전히 한계가 있습니다. 브라우저 스니핑을 사용하여 특정 브라우저 버전으로 버그, 보안 정책 또는 수정을 렌더링하는 경우 브라우저 스니핑이 여전히 필요합니다. 그러나 프레임 워크의 핵심을 제거하는 모듈이나 플러그인으로 독립적이어야합니다.
이제 주류 이벤트 시스템은 이벤트 프록시를 지원합니다.
데이터 캐시 및 처리는 현재 브라우저에서 제공 하여이 작업에 대한 데이터 속성을 제공하기 위해 제공되지만 사용하기 쉽지 않으며 프레임 워크의 추가 캡슐화가 필요합니다.
애니메이션 엔진은 프레임 워크에 Script.aculo.us와 같은 최고 수준의 애니메이션 프레임 워크가 없다면 추가하는 것이 가장 좋습니다.
개발하기 쉽고 확장 가능한 플러그인.
연기와 같은 비동기 프로세스를 처리하기위한 솔루션을 제공합니다.
클래스 공장이 구체적으로 제공되지 않더라도 Extend 또는 Mixin이라는 방법이 있어야합니다. jQuery에는 클래스 공장이 없지만 jQuery UI에 추가되어야하는데, 이는 그 중요성을 보여줍니다.
JQuery는 NoconFlict라는 방법을 나왔기 때문에 신흥 프레임 워크가 모두 슬릿에서 생존하기 위해이 방법을 가져 왔습니다.
많은 프레임 워크는 쿠키 운영에 중점을 둡니다.