본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


앵귤러, 리엑트, 뷰/앵귤러(Angular)

앵귤러 싱글톤 객체 사용법

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2019. 4. 28.

 

 

앵귤러에서 객체를 싱글톤 형식으로 공유하여 사용하는 방법이 있다. 불필요한 객체 사용을 하지 않고, 자주사용하는 객체를 빼서 관리하는 방법이다.
방법은 어렵지 않다.
공통으로 사용 할 서비스를 만들어서 해당 서비스를 컴포넌트 끼리 공유하면 된다.
1. 서비스를 만든다.
2. 메인 모듈 컴포넌트에 서비스를 등록하고 공급한다.
3. 해당 서비스를 받아서 사용한다.

 

메인 컴포넌트 예제

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { ShareItemService} from './share-item.service';  //내가만든 서비스

@NgModule({
declarations: [
  AppComponent
],
imports: [
  BrowserModule,
  FormsModule
],
providers: [ShareItemService], //해당서비스를 공급한다.
bootstrap: [AppComponent]
})
export class AppModule { }

 

서비스 예제

import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
export class ShareItemService {
  array = [1,2,3,4,5]; //공유할 객체

  constructor() { 

  }
  //나중에 공유 할 메소드나 Output할 객체를 써도 된다.
}

 

사용하는 컴포넌트 예제

import { Component,Host,Optional } from '@angular/core';
import {ShareItemService} from './share-item.service';
//사용할 서비스를 임포트 한다.
@Component({
  selector: 'rts-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})

export class AppComponent {
  title = 'singleton-share';
  private service : ShareItemService;
  private radioArray;
  //생성자를 통해 의존성을 주입 받는다. 이때 Host와 Optional 데코레이터를 사용하면 객체가 없는 경우 에러를 방지한다.
  constructor(@Host() @Optional() serv : ShareItemService){
       this.service = serv;
       this.radioArray = this.service.array

    };
  }

}
반응형

'앵귤러, 리엑트, 뷰 > 앵귤러(Angular)' 카테고리의 다른 글

Angular with firebase  (0) 2019.04.28
앵귤러 메모리 db서버  (0) 2019.04.28
앵귤러 ViewChildren과 ContentChildren의 차이  (0) 2019.04.28
앵귤러 시작하기  (0) 2019.04.28
앵귤러에 대한 생각  (0) 2019.04.28
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글