Template 1 (템플릿)

Vue Template에 대해서 알아보겠습니다.
이전의 예제를 통해서도 많이 봐왔던 Template입니다.

데이터 바인딩

<div id="app" v-once>
    {{ message }}
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.15/dist/vue.min.js"></script>
<script>
    new Vue({
        el : '#app', 
        data : {
            message : 'Hello Vue.Js!'
        }
    });
</script>

일반적인 변수 바인딩입니다.

v-bind

<div id="app" v-once>
    <p v-bind:id="idA">아이디 바인딩</p>
    <p v-bind:class="classA">아이디 바인딩</p>
    <p v-bind:style="styleA">스타일 바인딩</p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.15/dist/vue.min.js"></script>
<script>
    new Vue({
        el : '#app', 
        data : {
            idA : '10',
            classA : 'container',
            styleA : 'color:blue'
        }
    });
</script>

해당 요소의 id,class,style 속성을 바인딩 할 수 있습니다.

자바스크립트 표현식

Vue Template에서도 자바스크립트 표현식을 쓸 수 있습니다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>뷰 템플릿</title>
</head>
<body>
    <div id="app" v-once>
        {{ var a = 10; }} <!-- 사용불가 -->
        {{ if (true) { return 100; } }} <!-- 사용불가 -->
        {{ true ? 100 : 0 }} <!-- 사용가능 -->

        {{ message.split('').reverse().join('') }} <!-- 사용가능하지만 인스턴스 안에서 실행 -->
        {{ reversedMessage }} <!-- computed 속성으로 계산한 후 최종 값을 표햔 -->
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.15/dist/vue.min.js"></script>
    <script>
        new Vue({
            el : '#app',
            data : {
                message : 'Hello Vue.Js!'               
            },
            computed : {
                reversedMessage : function () {
                    return this.message.split().reverse().join('');
                }
            }
        })
        Vue.config.devtools = true;
    </script>
</body>
</script>
</body>
</html>

선언문과 IF문은 사용이 불가능합니다.
또한 복잡한 연산은 Instance 내에서 사용하는게 좋습니다.