Vue에서 데이터 전송 방법은?

0taetae·2024년 12월 23일
post-thumbnail

💡props, emit을 활용한 방법

부모 자식간에 데이터를 전달하기 위한 props, emit

  • Props
    • 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달하는 방식
  • emit
    • 자식 컴포넌트에서 부모 컴포넌트로 이벤트를 통해 데이터를 전달하는 방식
    • $emit 메서드를 사용하여 이벤트를 발생
  • 장점
    • 명확한 데이터 흐름 -> 디버깅 용이
    • 컴포넌트 재사용성
    • 타입 체크
  • 단점
    • 컴포넌트 트리가 깊어질수록 복잡한 데이터 전달
      ✔️즉, 복잡한 구조에서 사용하기 어려움
    • 직접적인 부모-자식 관계가 없는 컴포넌트 간 통신에는 적합하지 않음
      ✔️즉, 인접한 부모 자식간에만 전달 가능
    • 컴포넌트 간 결합도가 높아질 수 있음

💡Mitt Library를 활용한 방법

Component <-> Mitt <-> Component간 데이터 전송

  • vue3에서 이벤트 버스 패턴을 구현하기 위한 경량 라이브러리
  • 컴포넌트 간의 직접적인 관계 없이 데이터 전송 가능
  • 장점
    • API가 단순하여 빠르게 적용 가능
      ✔️즉, 복잡한 관계에서도 바로 데이터 전송 가능
    • 컴포넌트 간의 직접적인 관계 없이 통신 가능
      -> 유연성
    • TypeScript 지원
  • 단점
    • 상태 관리 기능 없음
    • 이벤트가 많아지면 관리 어려울 수 있음(복잡성 증가)
      ✔️ 데이터 흐름 추적 어려움

💡vuex를 통한 방법

Vuex의 State 공간에서 데이터를 관리하고, Component는 State를 주시

  • 상태 관리 패턴 및 라이브러리
  • 중앙 집중식 저장소를 통해 애플리케이션의 모든 컴포넌트에 대한 상태를 관리하고 예측 가능한 방식으로 상태를 변경할 수 있게 해줌
  • 값이 바뀌면 State를 공유하는 모든 Component 값이 변경되어 보임
  • 장점
    • 중앙 집중식 상태 관리 → 명확한 데이터 흐름
    • 디버깅 도구를 통해 상태 변화를 쉽게 추적 가능
    • 모듈화를 통해 대규모 애플리케이션의 상태 관리를 구조화
  • 단점
    • 작은 프로젝트에서는 오버엔지니어링이 될 수 있음
    • Props, emit, eventbus보다 설정 및 관리가 번거로움

0개의 댓글