Vue에서 객체 배열을 편집하기 위한 폼
이제 객체 배열 요소의 편집을 구현해 봅시다. 이를 위해 목록 항목에 편집 폼이 나타나게 하는 버튼을 만들겠습니다. 폼을 작성한 후 저장 버튼을 누르면 변경 사항이 배열에 저장되고 폼이 사라집니다.
구현을 시작해 봅시다. 객체 배열에서 각 객체에 사용자 상태(표시 또는 편집)를 포함하는 필드를 하나 더 추가해야 합니다:
data() {
return {
users: [
{
id: 1,
name: 'name1',
surn: 'surn1',
isEdit: false,
},
{
id: 2,
name: 'name2',
surn: 'surn2',
isEdit: false,
},
{
id: 3,
name: 'name3',
surn: 'surn3',
isEdit: false,
},
]
}
}
배열 내용을 목록으로 출력해 봅시다:
<template>
<ul>
<li v-for="user in users" :key="user.id">
{{ user.name }}
{{ user.surn }}
</li>
</ul>
</template>
이제 표시 모드와 편집 모드를 분리해 봅시다:
<template>
<ul>
<li v-for="user in users" :key="user.id">
<template v-if="!user.isEdit">
{{ user.name }}
{{ user.surn }}
<button @click="edit(user)">
edit
</button>
</template>
<template v-else>
<input v-model="user.name">
<input v-model="user.surn">
<button @click="save(user)">
save
</button>
</template>
</li>
</ul>
</template>
메서드를 구현해 봅시다:
methods: {
edit(user) {
user.isEdit = true;
},
save(user) {
user.isEdit = false;
},
}
이전 강의의 과제를 수정하여 각 직원을 편집할 수 있는 링크가 있는 열이 나타나게 하세요.