Vue.js 트리를 만들어보자!

강정우·2023년 5월 27일
0

vue.js

목록 보기
62/72
post-thumbnail

  • PS. 위 사진을 이제보니 마우스 커서가 보이지 않는다;; 1,2,3,4 단계가 깜빡깜빡하는 것은 각 depth의 폴더에 어느 곳을 눌러도 동작이 잘 된다는 것을 보여주는 코드이다.

1. 각 depth별 데이터 가져오기

  • 프론트에서 DB에 몇 depth의 데이터가 있는지 알 수 없기 때문에 사람이 유일하게 지정해주기만 하면 되는 부분은 payload 부분이다.

  • 이때 default로 3Lv의 depth를 부여하여 DB의 깊이만큼 데이터를 돌며 DB에 있는 데이터를 가져오고 font에서 필요한 속성값을 추가로 부여하여 state에 저장하였다.

2. 각 부서별 employee 데이터 가져오기

  • 위에서 작성한 depth 별 부서 가져오는 함수를 dispatch로 실행해주고 해당 node들을 가져온 다음 그 개수만큼 반복문을 돌며 해당 부서에 대한 emp 데이터를 가져온 다음 저장한다.

3. watch

  • 트리 데이터가 완성이 되었다. 이제 이 트리 데이터를 가지고 watch를 구현해주면 된다.

  • 위 함수는 tree데이터를 넣어, tree데이터를 순회하며 자식 노드들을 재귀적으로 호출하여 checked를 확인해주는 함수이다.

PS. 사내 발표용으로 작성하여 코드가 매우 이쁘게 작성되었다.
또한 icon 라이브러리라든지, html 작성하는 법은 추후 포스팅하겠다.

profile
智(지)! 德(덕)! 體(체)!

0개의 댓글