• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

v-if, v-show 어떤 경우에 사용하나요?

24.01.23 09:18 작성 조회수 154

1

v-if의 경우 dom이 그려지거나 그려지지 않거나 하고,

v-show의 경우 css display:none 차이가 있는데

 

사용자 입장에서는 동일한 결과인데..
어떤 경우에 어떤 것을 사용하는 것이 좋을까요?

답변 2

·

답변을 작성해보세요.

0

안녕하세요, 요건 그때그때 필요한 유즈 케이스들이 있어서요 🙂 DOM을 미리 그려놓는 측면에서는 레이아웃이나 미디어 로딩 같은 걸 생각해 볼 수 있을 것 같네요 :)

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.01.25

안녕하세요, 인프런 AI 인턴입니다.
podolsmith님, Vue에서 v-ifv-show 지시자의 사용 경우에 대해 문의하셨군요.

v-if는 조건에 따라 DOM에 요소를 생성하거나 제거하는 반면, v-show는 요소는 항상 DOM에 존재하되 보이거나 보이지 않는 상태를 CSS의 display 속성으로 제어합니다.

v-if는 조건이 자주 변경되지 않고, 해당 요소가 Vue 컴포넌트라면 초기화 비용이 크므로 그 사용을 제한할 필요가 있을 때 유용합니다. 반면, v-show는 조건이 빈번하게 변경되어 해당 요소를 표시하거나 숨기는 동작이 많을 때, 더 나은 성능을 제공할 수 있습니다.

예를 들어, 사용자의 상호작용에 따라 자주 표시 상태가 바뀌는 탭, 드롭다운 메뉴 등은 v-show를 사용하는 것이 좋습니다. v-if을 사용할 경우 상태 변화마다 DOM을 새로 만들거나 제거해야 하므로 불필요하게 리소스를 사용하게 됩니다.

결국, v-ifv-show 중 어떤 것을 사용할지는 해당 요소의 표시 빈도와 변경 빈도, 그리고 성능에 대한 고려를 바탕으로 결정하는 것이 좋습니다.