본문 바로가기
개념정리/Vue.js

[Vue.js] Vue v-if와 v-show 개념 및 예제

by lanuarius19 2022. 4. 26.
728x90

 

Vue.js Vue v-if와 v-show 개념 및 예제

 

토글이 자주 일어난다면 v-show를 사용하고, 그렇지 않다면 v-if를 사용하는 것을 권장한다.

 

코드 - if / else

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>뷰 v-if</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <div v-if="show">Hello Vue!</div>
        <div v-else>Bye!</div>
        <button @click="toggle">Click!</button>
    </div>
    <script>
        new Vue({
           el: '#app',
            data: {
                show: true
            },
            methods: {
                toggle() {
                    this.show = !this.show;
                }
            }
        })
    </script>
</body>
</html>

 

 

실행 결과

 

 


 

코드 - if / else / else if

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>뷰 v-if</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <template v-if="number === 2">
            <div>H</div>
            <div>E</div>
            <div>L</div>
            <div>L</div>
            <div>O</div>
        </template>
        <div v-else-if="number === 5">Five!!</div>
        <div v-else>Bye!</div>
        <button @click="plus">Plus!</button> {{ number }}
    </div>
    <script>
        new Vue({
           el: '#app',
            data: {
                number: 1
            },
            methods: {
                plus() {
                    this.number++;
                }
            }
        })
    </script>
</body>
</html>

 

 

실행 결과

 

 


 

코드 - template으로 여러 개 한번에 제어하기

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>뷰 v-if</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <template v-if="show">
            <div>H</div>
            <div>E</div>
            <div>L</div>
            <div>L</div>
            <div>O</div>
        </template>
        <div v-else>Bye!</div>
        <button @click="toggle">Click!</button>
    </div>
    <script>
        new Vue({
           el: '#app',
            data: {
                show: true
            },
            methods: {
                toggle() {
                    this.show = !this.show;
                }
            }
        })
    </script>
</body>
</html>

 

 

실행 결과

 

 


 

코드 - show

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>뷰 v-show</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <div v-show = "show">Hello Vue!!</div>
        <button @click="toggle">Click!</button>
    </div>
    <script>
        new Vue({
           el: '#app',
            data: {
                number: 1,
                show: false
            },
            methods: {
                plus() {
                    this.number++;
                },
                toggle() {
                    this.show = !this.show;
                }
            }
        })
    </script>
</body>
</html>

 

실행 결과

 

728x90

댓글