inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex

[리팩토링] mutations로 할 일 추가, 완료, 모두 삭제 구현

리스트 삭제 효과

685

한아링

작성한 질문수 23

1

안녕하세요 강사님 

리스트에서 항목 한개를 삭제했을 떄 효과가 저랑 강사님이랑 달라서 문의드립니다..!

예를들어 리스트가 1, 2, 3, 4, 5 라는 5개의 리스트가 있을 때

첫 번째 리스트의 휴지통 아이콘을 클릭하면

강사님은 첫 번쨰 리스트의 위치에서 사라진다면

저는 다섯번째 (마지막줄) 리스트에 삭제 효과가 들어가고 1번이 삭제됩니다..ㅠㅠ

어떤 부분을 확인해봐야할까요..?

(TodoList.vue)

<template>
  <div>
    <transition-group name="list" tag="ul">
      <li v-for="(todoItemindexin this.$store.state.todoItemsv-bind:key="indexclass="shadow">
        <i class="checkBtn fas fa-check" v-bind:class="{checkBtnCompleted: todoItem.completed}" v-on:click="toggleComplete(todoItemindex)"></i>
        <span v-bind:class="{textCompleted: todoItem.completed}">{{ todoItem.item }}</span>
        <span class="removeBtn" v-on:click="removeTodo(todoItemindex)">
          <i class="fas fa-trash-alt"></i>
        </span>
      </li>
    </transition-group>
  </div>
</template>

<script>
/* eslint-disable no-console */

export default {
  methods: {
    removeTodo(todoItemindex){      
      // this.$emit('removeItem', todoItem, index);
      this.$store.commit('removeOneItem', {todoItemindex});
    },
    toggleComplete(todoItemindex){
      // this.$emit('toggleItem', todoItem, index)
      this.$store.commit('toggleOneItem', {todoItemindex})
    }
  }
}
</script>

<style scope>
ul {list-style-type:none;padding-left:0;margin-top:0;text-align:left}
li {display:flex;min-height:50px;height:50px;line-height:50px;margin:0.5rem 0;padding:0 0.9rem;background:white;border-radius:5px}
.removeBtn {margin-left:auto;color:#de4343;}
.checkBtn {margin-right:5px;line-height:45px;color:#62acde}
.checkBtnCompleted {color:#b3adad}
.textCompleted {text-decoration:line-through;color:#b3adad}

/* 리스트 아이템 트렌지션 효과 */
.list-enter-active.list-leave-active {
  transitionall 1s;
}
.list-enter.list-leave-to /* .list-leave-active below version 2.1.8 */ {
  opacity0;
  transformtranslateY(30px);
}
</style>

vuejs javascript vuex es6

답변 1

0

캡틴판교

안녕하세요 아라님, 올려주신 코드는 크게 문제가 없으신 것 같고 다만 리스트에 데이터가 중복되서 들어가는 경우에 엉뚱한 리스트가 삭제되는 것처럼 보이는 것 같네요. 데이터 추가하는 코드에 중복 관련 처리 해주시고 리스트의 데이터가 중복되지 않는 상황에서 다시 한번 해보시겠어요? :)

Chrome 개발자 모드 확장이 안됨

0

260

1

깃 권한 요청드립니다

0

118

1

vue.js 중급 리포지토리 권한 관련

0

118

1

vuex + axios 질문 있습니다!

1

198

2

깃 권한 요청드립니다!

0

161

1

강의 깃주소 문의

0

144

1

router-view에 props를 어떻게 넘길 수 있나요?

1

280

2

Vue가 인식되지 않는 현상

0

205

1

기초강좌는 어디있나요?

1

190

2

App.vue가 필요한 이유

0

192

1

getter가 정의되어 있지 않아 오류가 발생합니다.

1

254

1

뷰 라이프사이클

1

187

1

TSLint 말고 TSLint Vue 설치해도 되나요?

1

368

3

로컬 스토리지는 어디에 있나요?

1

280

1

vuex 실행시 새로고침해야지만 리스트에 나타나는 현상

1

387

2

export default 관련한 질문

0

354

2

깃허브 vue-todo 접근불가에 따른 확인요청

1

354

2

깃허브에 문제있는것 같습니다.

1

273

2

인프런 강의 재생 화면 구성 변경 문의드립니다

1

305

2

addTodo Helper 함수 적용

1

243

1

vuex 헬퍼 전역 설정

1

245

2

github 권한요청드립니다.

1

258

2

이벤트 위치에 대한 궁금증 입니다.

1

223

2

구조 차이에 대한 문의

1

345

2