programing

서비스, 지침 및 모듈의 차이점은 무엇입니까?

telecom 2023. 3. 1. 09:32
반응형

서비스, 지침 및 모듈의 차이점은 무엇입니까?

나는 많은 문서를 읽었고, 점점 더 혼란스러워지고 있다.나는 기본적으로 그 차이를 이해할 수 없다.

  • 서비스
  • 지시의
  • 모듈

커스텀 컴포넌트가 많이 보입니다.때로는 지시나 서비스를 이용하기도 합니다.항상 모듈로 시작합니다.이 세 가지 유형의 차이가 무엇인지 예를 들어 설명해 주실 수 있나요?

개인 메모(대부분 문서, Google 그룹 게시물 및 SO 게시물의 일부)에서 다음을 수행합니다.

모듈

  • 네임스페이스/그룹 서비스, 디렉티브, 필터, 구성 정보 및 초기화 코드에 대한 방법을 제공합니다.
  • 글로벌 변수 회피에 도움이 되다
  • $injector 설정에 사용되며 모듈(또는 모듈 전체)에 의해 정의된 것을 다른 곳에 주입할 수 있습니다(의존성 주입).
  • 각도 모듈은 공통과 관련이 없습니다.JS 또는 Require.js.AMD 또는 Require.js 모듈과 달리 Angular 모듈은 스크립트 로드 순서나 느린 스크립트 가져오기 문제를 해결하려고 하지 않습니다.이러한 목표는 직교하며 두 모듈 시스템이 나란히 존재하며 목표를 달성할 수 있습니다(이러한 문서 주장).

서비스

  • 는 싱글톤이기 때문에 정의하는 각 서비스의 인스턴스는 1개뿐입니다.싱글톤으로서 스코프의 영향을 받지 않기 때문에, 복수의 뷰/컨트롤러/디렉티브/기타 서비스와 액세스(공유)할 수 있습니다.
  • 커스텀 서비스를 작성할 수 있습니다(아마도 작성해야 합니다).
    • 같은 데이터에 액세스 할 필요가 있는 것(루트 스코프 사용 안 함)이 2개 이상 있거나 데이터를 깔끔하게 캡슐화하고 싶은 것
    • 예를 들어 웹 서버와의 상호작용을 캡슐화하는 경우(서비스에 $resource 또는 $syslog 포함)
  • 기본 제공 서비스는 '$'로 시작합니다.
  • 서비스를 사용하려면 의존관계 주입이 종속관계(컨트롤러, 다른 서비스, 지시 등)에 필요합니다.

지침(아래 항목 중 일부는 기본적으로 동일한 내용을 나타내지만, 가끔 약간 다른 표현이 도움이 될 수 있습니다.)

  • 모델 상태가 변경되었을 때 DOM을 갱신할 책임이 있습니다.
  • HTML 어휘 확장 = HTML에 새로운 기술을 가르칩니다.
    Angular에는 웹 어플리케이션 구축에 도움이 되는 명령어 세트(ng-* 등)가 포함되어 있습니다만, HTML을 선언적인 도메인 고유의 언어(DSL)로 변환할 수 있도록 독자적인 명령어 세트를 추가할 수 있습니다.예를 들어 Angular 홈페이지의 <tabs> 및 <pane> 요소 "Creating Components" 데모의 <tabs> 요소 등입니다.
    • 명확하지 않은 삽입 지시어(ng로 시작하지 않기 때문에): a, 양식, 입력, 스크립트, 선택, 텍스트 영역.Angular에서는 이 모든 것이 정상 이상입니다!
  • 디렉티브를 사용하면 "HTML 컴포넌트화"할 수 있습니다. 디렉티브가 ng-include보다 좋은 경우가 많습니다.예를 들어, 주로 데이터 바인딩을 사용하여 많은 HTML을 쓰기 시작할 때 해당 HTML을 (재사용 가능한) 지시로 리팩터링합니다.
  • Angular 컴파일러를 사용하면 임의의 HTML 요소 또는 속성에 동작을 부가할 수 있습니다.또, 커스텀 동작으로 새로운 HTML 요소 또는 속성을 작성할 수도 있습니다.Angular는 이러한 동작 확장의 지시를 호출합니다.
    • 모든 것을 요약하면 디렉티브는 Angular 컴파일러가 DOM에서 검출했을 때 실행되는 함수입니다.
  • 디렉티브는 Atribut, 요소명, 클래스명 또는 코멘트내의 이름의 존재에 의해서 트리거 되는 동작 또는 DOM 변환입니다.디렉티브는 (HTML) 컴파일 프로세스에서 특정 HTML 구조가 발견되었을 때 트리거되는 동작입니다.지시문은 요소 이름, 속성, 클래스 이름 및 설명에 배치할 수 있습니다.
    • 대부분의 디렉티브는 속성으로만 제한됩니다.예를 들어 DoubleClick은 커스텀 속성 지시어만 사용합니다.
  • 참고 항목: angularjs 지시문이란?

모듈에서 Angular things(의존성 주입 물질)를 정의하고 그룹화합니다.
데이터 공유 및 웹 서버 상호 작용 랩 서비스
HTML을 확장하고 지시로 DOM 조작을 수행합니다.
컨트롤러는 가능한 한 「씬」으로 합니다.

모듈은 디렉티브, 서비스, 상수 등 많은 다른 것들을 연결하는 장소라고 생각하시면 됩니다.모듈을 다른 모듈에 삽입하여 높은 수준의 재사용을 할 수 있습니다.

각진 앱을 작성할 때는 애플리케이션 코드(템플릿 없음)인 최상위 모듈을 사용할 수 있습니다.

서비스는 주로 컨트롤러 간에 통신하는 방법이지만 어떤 서비스를 다른 서비스에 주입할 수 있습니다.서비스는 데이터 스토어에 액세스하기 위한 방법으로 자주 사용되며, 사람들은 ngResource와 같은 각도 API를 랩합니다.이 기술은 테스트(특히 조롱)를 매우 쉽게 하기 때문에 유용합니다.인증, 로깅 등의 다른 작업을 수행하기 위한 서비스를 제공할 수 있습니다.

지시문은 위젯을 작성하거나 jquery 플러그인과 같은 기존 항목을 래핑하는 데 사용됩니다.기존 플러그인을 래핑하는 것은 어려울 수 있습니다.이렇게 하는 이유는 플러그인과 각도 사이에 양방향 데이터 바인딩을 확립하기 위해서입니다.양방향 데이터 바인딩이 필요하지 않은 경우 래핑할 필요가 없습니다.

디렉티브는 DOM 조작, DOM 이벤트 포착 등의 장소이기도 합니다.컨트롤러 또는 서비스에서 DOM 관련 작업을 수행하지 마십시오.지시문 작성은 매우 복잡해질 수 있습니다.IMHO, 나는 당신이 원하는 것을 할 수 있는 API를 먼저 찾거나 Angular's Google Group에 조언을 구하는 것을 추천한다.

언급URL : https://stackoverflow.com/questions/11171778/what-is-the-difference-between-service-directive-and-module

반응형