공부/TIL

[TIL] Vue 트리구조 component에 대한 고찰

Ail_ 2022. 5. 27. 09:26

구조를 잘 짰다는 칭찬을 받아 기분이 좋았다ㅎ

트리구조를 보여주는 vue 페이지를 해당 항목만 보여주는 트리구조로 수정하여 component로 만들어야 했다.

이틀동안 어떤 식으로 구현해야 할 지 고민했다. 일단 이미 존재하는 다른 컴포넌트 파일을 샅샅이 뒤지고 트리구조 페이지 파일을 하나하나 살펴봤다.

 

일단 props로 해당 항목의 id랑 type을 전달 받아 어떤 곳에서 넘어오는 데이터인지 알 수 있도록 해야 했다.

값은 아래처럼 넘겨주도록 했다.

watch의 infoData엔 선택하는 항목의 값만 들어오기 때문에 infoData의 id를 이용하기로 했다.

              <b-tab
                dev-comment="트리 구조"
                title="트리 구조"
              >
                <tree-view
                  :id="selectedId"
                  type="Type"
                />
              </b-tab>

// import 등 생략

  watch: {
    infoData (value) {
      if (value !== null) {
        this.selectedId = value.id
      }
    }
  },

 

트리구조 페이지에선 다음과 같이 처리했다.

props로 id와 type을 받아 트리 구조에 데이터를 넣어주는 함수에서 if문 처리했다.

  // 생략
  
  props: {
    id: { // 해당 항목의 id
      type: Number,
      required: false,
      default: null
    },
    type: { // 해당 항목의 type
      type: String,
      required: false,
      default: null
    }
  },

// 생략

// 트리 구조에 데이터를 넣어주는 함수에서 if문 처리
if (treeView.id === this.id || this.type !== 'Type') {

// 생략