programing

AngularJS: 컨트롤러와 서비스

stoneblock 2023. 3. 5. 09:27

AngularJS: 컨트롤러와 서비스

서비스, 공장, 컨트롤러, 디렉티브 등 angularjs 엔티티의 적절한 사용에 관한 글을 몇 개 읽은 적이 있습니다.

특히 관심사는 컨트롤러와 서비스의 비교입니다.그러나 어떤 게시물도 컨트롤러가 서비스를 할 수 없는 것과 그 반대인 것을 알려주지 않았습니다.

이것이 나열될 수 있을까요, 아니면 단지 앵글의 용법에 있어서 규범적인 문제일까요?

컨트롤러는 일반적으로 뷰로 바인드하기 위해 사용됩니다.컨트롤러는 뷰의 라이프 사이클을 관리하며 뷰 컨트롤러로 간주해야 합니다.뷰 인스턴스별로 새 컨트롤러가 생성됩니다.즉, 특정 뷰에서 벗어나 다시 이동하거나 특정 뷰 인스턴스가 여러 개 있는 경우 매번 새 컨트롤러가 생성됩니다.

서비스는 일반적으로 애플리케이션의 비즈니스 로직으로 사용됩니다.서비스는 한 번 생성된다는 점에서 싱글톤과 유사하며 인스턴스는 애플리케이션의 전체 라이프 사이클 동안 유지됩니다.많은 뷰 또는 컴포넌트가 필요로 하는 논리 기능을 배치하고 애플리케이션 내 여러 영역에서 액세스해야 하는 글로벌 캐시를 보유하기에 적합합니다.

컨트롤러 - 책임: 뷰 초기화, 뷰/프로세서 및 서비스 간의 상호 작용 조정뷰와 모델에 의존하지만 뷰와 작동에 더 관심이 있습니다.

서비스 - 책임: 뷰 또는 컨트롤러에 의존하지 않는 비즈니스 서비스를 제공합니다.주요 관심사는 소비자(컨트롤러/뷰/기타 서비스)에 관계없이 서비스를 제공하는 것입니다.

지속성이 그 차이에 영향을 미치는지 확신이 안 선다.

Angular에 따라JS 매뉴얼, https://docs.angularjs.org/guide/concepts

컨트롤러는 뷰 관련 비즈니스 로직과 관련되어 있습니다.한편, 서비스는 뷰와는 무관하게 재사용 가능한 비즈니스 로직과 관련되어 있습니다.

위에서 말한 것 외에.컨트롤러는 어플리케이션의 로직을 보유할 수도 있습니다.어플리케이션의 사이즈는 크지 않습니다.다만, 애플리케이션의 확대에 수반해, 서비스(공장등)를 사용하기 위한 로직을 이동할 필요가 있습니다.이를 통해 응용 프로그램에 필요한 변수와 함수에 쉽게 액세스할 수 있습니다.

언급URL : https://stackoverflow.com/questions/27398741/angularjs-controller-vs-service