인프런 커뮤니티 질문&답변

career87님의 프로필 이미지
career87

작성한 질문수

Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념

newsview나 askview에서 사용자를 눌렀을때

작성

·

139

1

사용자를 눌러서 사용자 상세페이지로 갈때 마다 사용자의 데이터값이 바뀌는데..

기존에 있던 사용자가 먼저보여졌다가 다른 사용자로 변경되는건...어쩔수 없는건가요??

답변 3

1

career87님의 프로필 이미지
career87
질문자

beforeDestroy(){

    this.$store.state.itemList = {};

}

이런식으로 컴포넌트가 제거될때 데이터값을 초기화하고싶을때는 저런식으로 하면될까요?

아니면 다른 좋은방법이 있을까요?

1

안녕하세요 career87님, 좋은 질문이네요 :) 2가지 해결 책이 있을 것 같아요.

1. 사용자 상세 페이지의 컴포넌트 라이프 사이클 훅 'beforeDestroy'에서 해당 데이터 값 초기화

2. 라우터 네비게이션 가드를 이용해 데이터를 받아왔을 때만 해당 페이지로 진입

한번 적용해보시고 궁금하신 거 있으면 알려주세요 :)

0

아 컴포넌트에서 스토어의 state를 변경하실 때는 반드시 mutations로 접근하셔야 합니다. 저렇게 하면 뷰엑스의 strict 옵션을 넣었을 때 콘솔에 에러가 발생할거에요 :)

결론적으로 아래와 같은 코드로 초기화 하는게 좋을 것 같습니다.

beforeDestroy() {
  this.$store.commit('initItemList');
}

career87님의 프로필 이미지
career87

작성한 질문수

질문하기