inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

[리팩토링] 할 일 완료 기능

결국 이 코드에선 안티패턴 제거가 안된게 아닌가 싶어서 문의드립니다.

226

조성창

작성한 질문수 1

1

안녕하세요.

"상위 컴포넌트의 데이터를 하위 컴포넌트로 전달한 후 하위 컴포넌트에서 변경(변형)하지 말아야 한다"

즉 컴퍼넌트 안의 data를 직접 변경하는게 하위 컴퍼넌트와의 이벤트 버스를 통해 변경하는것보다는 좋다.

이 부분에는 전적으로 동의합니다. 어찌보면 당연한 내용이기도 하고요.


근데 궁금한건 이 코드는 결국엔 toggleOneItem() 함수를 실행하면서 인자로 받은 todoItem을 localStorage에 담을땐 그대로 하위 컴퍼넌트의 값을 이용한게 아닌가 싶어서요.

말씀하신대로 리펙토링한다면 아래와 같이 추가로 더 수정해야 할듯 한데 어떻게 생각하시는지 궁금합니다.

localStorage.removeItem(this.todoItems[index].item);
localStorage.setItem(this.todoItems[index].item, JSON.stringify(this.todoItems[index]));

vuex javascript vuejs es6

답변 1

1

캡틴판교

안녕하세요 성창님 좋은 질문입니다 :) 특정 컴포넌트에서 다른 컴포넌트에서 넘겨 받은 데이터를 변경하지만 않는다면 어떤 식으로 코드를 짜시더라도 크게 문제가 되진 않습니다 :) 말씀해 주신 방향도 좋은 것 같아요! :)

Chrome 개발자 모드 확장이 안됨

0

253

1

깃 권한 요청드립니다

0

118

1

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

0

118

1

vuex + axios 질문 있습니다!

1

198

2

깃 권한 요청드립니다!

0

161

1

강의 깃주소 문의

0

143

1

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

1

279

2

Vue가 인식되지 않는 현상

0

205

1

기초강좌는 어디있나요?

1

190

2

App.vue가 필요한 이유

0

192

1

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

1

253

1

뷰 라이프사이클

1

187

1

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

1

367

3

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

1

279

1

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

1

387

2

export default 관련한 질문

0

354

2

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

1

354

2

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

1

273

2

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

1

303

2

addTodo Helper 함수 적용

1

243

1

vuex 헬퍼 전역 설정

1

245

2

github 권한요청드립니다.

1

257

2

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

1

223

2

구조 차이에 대한 문의

1

344

2