ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Vue-js 문법 - 조건부 렌더링
    Vue/Vue.js 문법 2021. 7. 14. 15:11

     

    v-if

     

    - v-if 디렉티브는 조건에 따라 블록을 렌더링할 때 사용

    - 블록은 디렉티브의 표현식이 true 값을 반환할 때만 렌더링

     

    <h1 v-if="awesome">Vue is awesome!</h1>
    
    <!-- v-else와 함께 “else 블록”을 추가하는 것도 가능 -->
    <h1 v-if="awesome">Vue is awesome!</h1>
    <h1 v-else>Oh no 😢</h1>

     

    예제

     

    <!-- App.vue -->
    
    <template>
      <button @click="handler">
        Click me!
      </button>
      <h1 v-if="isShow">
        Hello?!
      </h1>
      <h1 v-else>
        Good~
      </h1>
    </template>
    
    <script>
    export default {
      data() {
        return {
          isShow: true
        }
      },
      methods: {
        handler() {
          this.isShow = !this.isShow
        }
      }
    }
    </script>

     

    코드 이해하기

    - 처음에는 <Button> 태그 (Click me!)와 <h1> 태그 (Hello?!)가 화면에 출력

    - 버튼 (Click me!)을 누르면 메소드 handler()가 동작

    - hendler() 메소드는 isShow 데이터가 true면 false, false면 true로 변경

    - isShow가 false 이므로 (Hello?!)는 (Good~)으로 변경

     

    결론: 버튼을 누르면 (Hello?!)일때는 (Good~), (Good~)일때는 (Hello?!)로 변경됨

     


     

    v-show

     

    - v-if 디렉티브와 거의 동일한 디렉티브

    - 차이점은 v-show 를 쓴 엘리먼트의 경우, 항상 렌더링 되어 DOM에 남아있음

    - v-show 는 단순히 엘리먼트의 CSS display: none 속성만을 전환

    - v-show 는 <template> 엘리먼트를 지원하지 않으며, v-else 와 함께 사용이 불가능함

     

    자주 전환해야 한다면 v-show를 사용하는 게 좋고, 런타임 시 조건이 변경되지 않는다면 v-if를 사용하는 게 더 낫다

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

    Vue.js 문법 - 이벤트 핸들링  (0) 2021.07.14
    Vue.js 문법 - 리스트 렌더링  (0) 2021.07.14
    Vue.js 문법 - 클래스와 스타일 바인딩  (0) 2021.07.13
    Vue.js 문법 - Watch  (0) 2021.07.13
    Vue.js 문법 - Getter, Setter  (0) 2021.07.13

    댓글

Designed by Tistory.