Open chaeyeonan opened 9 months ago
TodoApp.vue
에서 TodoItemList.vue
로 todolist
를 props
로 넘겨주고 있음TodoItemList.vue
에서 props
로 받은 후 data
에 한번 더 바인딩 하고 있었음<todo-item-list
:todoItems="todolistOfToday"
:date="createdDate"
@delete="deleteTodo"
@update="updateTodo"
/>
props: {
date: {
type: String,
required: true,
},
todoItems: {
type: Array,
required: true,
},
},
data() {
return {
todolist: this.todoItems,
};
}
data()
는 처음 mount
될 때 실행됨 > TodoApp.vue
에서 todolist
가 바뀌어도 TodoItemList.vue
의 data
가 바뀌지 않음 mount
가 새로 될때 data
가 갱신됨TodoItemList.vue
의 data
를 삭제하고, props
로 받은 todoItems
를 그대로 사용<todo-item
v-for="todos in todolist"
:key="todos.id"
:todo="todos"
@delete="deleteData"
@update="updateData"
/>
<todo-item
v-for="todos in todoItems" //props 받은거 그대로 사용
:key="todos.id"
:todo="todos"
@delete="deleteData"
@update="updateData"
/>
task id
를 이용하여 index
를 찾아, 해당 index
를 배열에서 삭제하기
deleteTodo(id) {
const index = this.todolist.findIndex((item) => item.id === id); // index 찾기
if (index !== -1) {
this.todolist.splice(index, 1); // 해당 index를 삭제
}
}
문제
[ 반응성 문제 ] 할일을 삭제하는 기능 구현 시 filter 함수를 사용하면 todolist 배열에서는 삭제가 되나, 화면에 반영 안됨
TodoApp.vue