[Vue.js] Vue.js 시작하기 - 1 [ 선언적 렌더링 ]

리트리버J

·

2020. 12. 27. 00:02

728x90

선언적 렌더링

 

1. Vue.js 스크립트를 추가해준다.

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

2. <script>태그 내부에 new Vue를 통해 Vue 인스턴스를 생성.

el : element의 약자
#app을 통해 id가 app인 div태그를 통제한다.

 

data : Vue 인스턴스에서 사용되는 데이터.
         json방식의 key : value 형태로 들어간다.

 

{{ }} : 머스태쉬(mustache)
       <body>태그 내부에 사용되며 data의 key를 입력해주면 출력된다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{ message }}
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                message: '안녕하세요 Vue!'
            }
        })
    </script>  
</body>
</html>
cs

출력값

3. app도 하나의 객체이기 때문에 일반적인 JS처럼 변경 할 수 있다.

app.message = "" 를 통하여 data 안의 message를 변경 할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{ message }}
    </div>
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                message: '안녕하세요 Vue!'
            }
        })
        app.message = "반갑습니다 Vue.js!";
    </script>  
</body>
</html>
cs

출력값

4. v-bind 속성

:title이 붙으면

html의 title 속성을 Vue 인스턴스로 제어한다는 뜻이다.

 

일단 기본적인 html 태그의 title 속성을 보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
    <title>Document</title>
</head>
<body>
    <div id="app-2">
        <span title="html 태그 title 속성">
          내 위에 잠시 마우스를 올리면 동적으로 바인딩 된 title을 볼 수 있습니다!
        </span>
    </div>
    <script>
        var app2 = new Vue({
        el: '#app-2',
        data: {
            message: '이 페이지는 ' + new Date() + ' 에 로드 되었습니다'
        }
        })
    </script>  
</body>
</html>
cs

hover 시 툴팁으로 작성해준 값이 나온다.

 

이제, 원하는 title값을 Vue 인스턴스를 통해서 동적으로 변경시키고 싶다면,

v-bind:title="원하는 값"을 입력해보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
    <title>Document</title>
</head>
<body>
    <div id="app-2">
        <span v-bind:title="message">
          내 위에 잠시 마우스를 올리면 동적으로 바인딩 된 title을 볼 수 있습니다!
        </span>
    </div>
    <script>
        var app2 = new Vue({
        el: '#app-2',
        data: {
            message: '이 페이지는 ' + new Date() + ' 에 로드 되었습니다'
        }
        })
    </script>  
</body>
</html>
cs

Vue 인스턴스의 data의 message값이 동적으로 바인딩 되었다.

 

728x90