๐Ÿ“• Language/Vue

[Age of Vue] Vue.js ์‹œ์ž‘ํ•˜๊ธฐ - 24. ๋””๋ ‰ํ‹ฐ๋ธŒ v-bind, v-if, v-show

a n u e 2022. 5. 7. 22:31

v-bind

v-bind๋ฅผ ์ด์šฉํ•˜์—ฌ ํ™”๋ฉด์— ๋ณด์—ฌ์ง€๋Š” ๋ฐ์ดํ„ฐ ๋ฟ ์•„๋‹ˆ๋ผ

ํƒœ๊ทธ์˜ id๊ฐ’, calss์˜ name ๋“ฑ ์ „์ฒด์ ์ธ DOM์— ๋Œ€ํ•œ ์ •๋ณด๊นŒ์ง€๋„ Reactivityํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

v-if

ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ํƒœ๊ทธ ์ œ์–ด ๊ฐ€๋Šฅ

v-show

v-if์™€ ์œ ์‚ฌํ•˜๋‹ค.

v-if์™€์˜ ์ฐจ์ด์ ? false์ผ๋•Œ, v-if๋Š” DOM์„ ์•„์˜ˆ ์ œ๊ฑฐํ•˜์—ฌ <div>ํƒœ๊ทธ๋ฅผ ์—†์• ๊ณ  v-show๋Š” style์„ ์ž…ํ˜€ display:none์ฒ˜๋ฆฌํ•จ

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <p v-bind:id="uuid" v-bind:class="name">{{ num }}</p>
        <!-- <p id="abc1234"> {{ num }}</p> ๋ฅผ ์˜๋ฏธ-->
        <p>{{ doubleNum }}</p>
        <div v-if="loading">
            Loading ...
        </div>
        <div v-else>
            test user has been logged in
        </div>
        <div v-show="loading">
            Loading ...
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        new Vue({
                el: '#app',
                data : {
                    num : 10,
                    uuid: 'abc1234',
                    name: 'text-blue',
                    loading: true
                },
                computed : {
                    doubleNum : function() {
                        return this.num * 2;
                    }
                }
            });
    </script>
</body>
</html>