Vue.js

[Vue.js] v-show와 v-if의 차이

유호야 2023. 3. 21. 00:47
반응형

v-show와 v-if의 차이

v-show와 v-if는 Vue.js에서 조건부 렌더링을 구현하는 데 사용되는 디렉티브입니다. v-show는 렌더링 비용이 높기 때문에 항상 렌더링되지만 CSS display 속성을 사용하여 숨길 수 있습니다. 반면에 v-if는 조건에 따라 렌더링 여부를 결정하며 렌더링 비용이 더 적게 듭니다. 그러나 전환 비용이 높기 때문에 상황에 따라 v-show를 사용하는 것이 더 효율적일 수도 있습니다. 또한, v-show는 항상 template 태그 내부에서 사용해야 하며 v-else와 함께 사용할 수 없습니다.

v-show와 v-if는 Vue.js에서 조건부 렌더링을 구현하는 데 사용되는 디렉티브입니다.

v-show는 렌더링 비용이 높기 때문에 항상 렌더링되지만 CSS display 속성을 사용하여 숨길 수 있습니다. 따라서 v-show는 초기 렌더링 비용이 낮아 자주 사용되는 경우가 많습니다.

반면에 v-if는 조건에 따라 렌더링 여부를 결정하며 렌더링 비용이 더 적게 듭니다. 그러나 전환 비용이 높기 때문에 상황에 따라 v-show를 사용하는 것이 더 효율적일 수도 있습니다.

v-show는 항상 template 태그 내부에서 사용해야 하며 v-else와 함께 사용할 수 없습니다.

<template>
  <div>
    <button @click="toggle">Toggle</button>
    <h1 v-if="isIf">Using v-if</h1>
    <h1 v-show="!isIf">Using v-show</h1>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isIf: true
    }
  },
  methods: {
    toggle() {
      this.isIf = !this.isIf
    }
  }
}
</script>

위 코드에서 v-if를 사용하는 h1 태그는 조건에 따라 렌더링이 결정되고, v-show를 사용하는 h1 태그는 항상 렌더링되지만 CSS display 속성을 사용하여 숨겨집니다.

반응형

'Vue.js' 카테고리의 다른 글

[Vue.js] style scoped 기능  (0) 2023.03.20