vue.js v-for와 컴포넌트
v-for와 컴포넌트
v-for를 사용자 정의 컴포넌트에 직접 사용할 수 있습니다.
<my-compent v-for="item in items" :key="item.id"></my-compent>
2.2.0이상에서 v-for는 key가 필수 입니다.
그러나 컴포넌트에는 자체 범위가 분리되어 있기 때문에 컴포넌트에 데이터를 자동으로
전달하지는 않습니다.
반복할 데이터를 컴포넌트로 전달하려면 props도 사용해야 합니다.
<my-compoent
v-for="(item, index) in items"
v-bind:item="item"
v-bind:index="index"
v-bind:key="item.id"
></my-compent>
컴포넌트에 item을 자동으로 주입하지 않는 이유는 컴포넌트가 v-for의 작동방식과 밀접하게
결합되기 때문입니다. 데이터의 출처가 명확히 하면 다른 상황에서 컴포넌트를 재사용할 수 있습니다.
간단한 할일 목록 전체 예제입니다.
HTML부분
<div id="todo-list-example">
<input
v-model="newTodoText"
v-on:keyup.enter="addNewTodo"
placeholder="Add a todo"
>
<ul>
<li
v-for="(todo, index) in todos"
v-bind:key="todo.id"
v-bind:title="todo.title"
v-on:remove="todos.splice(index,1)"
></li>
</ul>
</div>
is="todo-item" 속성을 보면 <li>엘리먼트는 <ul>안에서만 유효합니다.
<todo-item>과 같은 일을 하지만 잠재적인 브라우저의 구문분석 오류를 해결합니다.
JS부분
Vue.component('todo-item', {
template: '\
<li>\
{{ title }}\
<button v-on:click="$emit(\'remove\')">X</button>\
</li>\
',
props: ['title']
})
new Vue({
el: '#todo-list-example',
data:{
Vue.component('todo-item', {
template: '\
<li>\
{{ title }}\
<button v-on:click="$emit(\'remove\')">X</button>\
</li>\
',
props: ['title']
})
new Vue({
el: '#todo-list-example',
data: {
newTodoText: '',
todos: [
{
id: 1,
title: 'Do the dishes',
},
{
id: 2,
title: 'Take out the trash',
},
{
id: 3,
title: 'Mow the lawn'
}
],
nextTodoId: 4
},
methods:{
addNewTodo: function(){
this.todos.push({
id: this.nextTodo++,
title: this.newTodoText
})
this.newTodoText = ''
}
}
})
게시글 목록
| 번호 | 제목 |
|---|---|
| 3168 | |
| 3167 | |
| 3166 | |
| 3165 |
HTML
HTML5 로컬 저장소
|
| 3164 |
HTML
HTML5 드래그 앤 드롭
|
| 3163 | |
| 3162 |
HTML
YouTube 동영상 ID
|
| 3161 |
HTML
HTML 도우미 (플러그인)
|
| 3160 | |
| 3159 |
HTML
HTML5 비디오
|
| 3158 |
HTML
HTML 멀티미디어 오디오 형식
|
| 3157 |
HTML
HTML 멀티미디어
|
| 3156 |
기타
Google 아이콘
|
| 3155 |
기타
부트 스트랩 아이콘
|
| 3154 |
기타
아이콘을 추가하는 방법
|
| 3153 | |
| 3152 |
반응형
부트 스트랩 <abbr>
|
| 3151 |
반응형
부트 스트랩 <mark>
|
| 3150 | |
| 3149 |
반응형
부트 스트랩의 기본 설정
|
| 3148 |
반응형
부트 스트랩 그리드 시스템
|
| 3147 |
CSS
왼쪽에 툴팁 나오게 하는 소스
|
| 3146 | |
| 3145 |
CSS
css를 이용한 툴팁만들기
|
| 3144 | |
| 3143 | |
| 3142 | |
| 3136 |
CSS
css 이미지 갤러리
|
| 3135 |
CSS
CSS 드롭 다운
2
|
| 3134 |
CSS
css 기본 툴팁
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기