본문 바로가기

Vue/vue 기초 공부하기

Vue 컴포넌트 만들기

Vue.component를 활용해 컴포넌트를 생성한다( #app안에 new Vue가 포함되어 있어야 한다).

 

v-for을 활용해 groceryList 안에 item을 반복문으로 뿌려주고 

component를 props로 지정해준다(프롭스는 부모쪽에서 자식쪽에 값을 넘겨줄때 사용한다)

 

부모 컴포넌트에는 data GroceryList 데이터를 선언해준다.

 

해당 데이터들을 todo에 바인딩 해준다.(부모쪽의 데이터를 자식쪽에 데이터를 넘겨준다)

각 key값을 item.id를 지정해준다.

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<!DOCTYPE html>
<html lang="en">
 
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
 
<body>
  <div id="app">
    <ol>
      <todo-item v-for="item in groceryList" v-bind:todo="item" v-bind:key="item.id">
      </todo-item>
    </ol>
  </div>
 
  <!-- 상용버전, 속도와 용량이 최적화됨. -->
  <!-- 뷰를 사용하기위한 cdn 주소 -->
  <script src="https://cdn.jsdelivr.net/npm/vue"></script>
  <script>
    Vue.component('todo-item', {
      props: ['todo'],
      template: '<li>{{ todo.text }}</li>'
    })
 
 
    var app = new Vue({
      el: '#app',
      data: {
        groceryList: [{
            id: 0,
            text: 'Vegetables'
          },
          {
            id: 1,
            text: 'Cheese'
          },
          {
            id: 2,
            text: 'Whatever else humans are supposed to eat'
          }
        ]
      }
    })
  </script>
</body>
 
</html>
cs