inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Hướng dẫn hoàn chỉnh về Vue.js - Học các khái niệm thực tế thông qua thực hành và tái cấu trúc

[Thực hành] Router Navigation Guard và thay đổi thời điểm kết thúc spinner

vuex 적용시 질문

286

jjhw01069598

10 câu hỏi đã được viết

1

vue3로 강의를 실습 중이라 vuex를 활용해 진행하고 있습니다.

 

spinner처리 때문에 위 코드처럼 next()에 setTimeout을 걸었는데, 기존에 불러왔던 데이터가 상태에 남아있어서 그런지,

예를들어 ask-> news탭을 누를 경우 news 데이터가 바로 반영이 되어 리스트 화면이 변경된 뒤에, 1초 후 화면이 깜빡 거리면서 다시 news 데이터가 뜹니다.

이를 해결하기 위해, mutations에

위와 같이 state를 비워 주는 코드를 추가하여 해결했는데,

vuex를 사용하게되면 이런식으로 화면이 바뀔 때 상태값들을 초기화 시켜주어야 하는걸까요?

javascript vue.js

Câu trả lời 2

0

captain

안녕하세요, 네 뷰엑스는 전역 상태다 보니 페이지가 바뀌더라도 상태가 남아있을 거예요. 명시적으로 초기화 해주셔야 합니다 :)

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

vuex를 사용하는 Vue.js 애플리케이션에서 뷰가 변경될 때 기존의 상태를 초기화하는 것은 일반적인 작업입니다. 특히 여러 뷰에서 같은 상태를 공유할 경우, 사용자가 새로운 뷰로 이동했을 때 이전 뷰의 상태가 남아있게 되면 예상치 못한 결과가 나타날 수 있기 때문에 상태를 초기화하는 것이 좋은 방법입니다.

다만, 모든 상태를 항상 초기화할 필요는 없으며, 뷰에 따라 유지되어야 하는 상태가 있을 수 있습니다. 상태 초기화는 그 상태가 해당 뷰에 특화된 것인지, 다른 뷰와 공유되어야 하는 것인지에 따라 결정해야 합니다.

주어진 코드 상황에서는 CLEAR_STATE 뮤테이션을 사용하여 상태를 초기화하고, 그 이후에 필요한 데이터를 불러오는 것으로 문제를 해결하셨네요. 이 방법은 이전 상태로 인해 화면에 잘못된 데이터가 보여지는 것을 방지하는 효과적인 방법입니다.

setTimeout을 사용하여 로딩 상태를 관리하는 것은 사용자 경험을 떨어뜨릴 수 있으므로, 가능하다면 데이터가 실제로 로드될 때까지 기다렸다가 상태를 변경하는 방식으로 바꾸는 것이 더 좋습니다. 예를 들어, API 호출을 통해 데이터를 가져오는 경우, 데이터가 완전히 로드되었을 때 loading 상태를 종료하는 것이 사용자에게 자연스러운 로딩 경험을 제공할 것입니다.

또한, 로드된 데이터의 처리가 필요한 경우에는 vuexactions 안에서 비동기 로직을 처리하고, 결과에 따라 상태를 업데이트하는 구조로 구현하는 것이 적절할 수 있습니다.

추가로 궁금한 점이 있으시면 링크를 통해 인프런의 FAQ 페이지에 문의해보시길 권장드립니다.

깃 권한 요청 드립니다

0

50

1

깃 권한 신청

0

50

1

깃 권한 요청드립니다.

0

111

1

깃허브 권한 요청 드립니다

0

144

1

깃허브 권한 요청 드립니다

0

160

1

깃허브 권한 요청 드립니다

0

167

1

깃허브 권한 요청 드립니다.

0

154

1

안녕하세요 vue 2.7로 수강하고 있는 학생입니다. 실무에서 최하위 자식의 props와 watch의 관계를 여쭈고자 합니다.

0

207

1

ide 타입추론 기능 사용할 수 없을까요??

0

205

1

컴포넌트 링크는 vue peek 익스텐션 설치가 필수인가요??

0

228

1

Vue3로 진행중입니다

1

338

1

Vue router-link 사용시 같은 url이면

1

506

1

vue3 에러 메세지...

1

670

2

id ="app" 중복

0

271

2

use undefined 에러가 나옵니다.

1

318

2

깃허브 권한 요청드립니다.

1

358

2

권한요청드립니다.

1

299

2

Vue3에서 구글 애드센스 탑재하기

1

435

2

코드가 정상 작동 되는건지 ...

1

302

1

강의에서 api를 따로 빼셨는데 얻는 이점이 뭐죠?

1

243

1

라우터 버전이 안맞는데 어떤걸 써야하나요

1

378

2

UserView에 id 속성만 undefined로 넘어오는데 이유를 모르겠습니다..

1

451

2

권한요청 드립니다!

1

271

2

동적 라우팅과 헬퍼함수 간의 오류 질문드립니다.

1

263

2