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

ceze님의 프로필 이미지
ceze

작성한 질문수

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

[실습] 라우터 네비게이션 가드 실습 및 스피너 종료 시점 변경

then(()=> next()) 와 then(next())

작성

·

308

1

route에서 .then(() => next()) 이렇게 적게 되면

화면이 이동할 때 깜박이는 현상이 있습니다. git 코드를 받아보니 .then(next()) 라고 변경되어 있는걸 확인했습니다.

실제 강의에서는 then( () => next() )

이렇게 진행을 하셨는데, 이렇게 할 경우 list 라는 변수를 공유하고 있기 때문에 데이터를 갱신 한 뒤에,

next가 호출이 되서 이전 화면에서 데이터가 바뀐 데이터로 변경된 뒤에 transition 효과로 사라지기 때문에, 

같은 데이터가 사라지고 (새로운 화면으로 이동하고) 다시 생겨서 마치 깜박이는 것처럼 보이게 되는데 그래서 .then(next())로 변경하신 걸까요 ?

이 경우는 프로미스 실행 전에 수행이 되니까 실제로는 store에서 dispath 하기 전에 next를 불러준 것과 같은 효과 맞을까요 ?

 

답변 부탁드립니다. 미리 감사 드립니다

답변 1

0

안녕하세요 eze님, 말씀하신 then(next())는 틀린 문법인데요. 강의 내용 다시 한번 확인해 주시겠어요? :)

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

깜박임이 발생해서 차이를 확인하고자 git에서 소스를 받아 보았는데

강의에는 () => next() 라고 설명을 하셨는데 git에는 then(next())로 작성이 되어 있습니다.

https://github.com/joshua1988/vue-advanced/blob/10_refactoring-fetching/vue-news/src/routes/index.js

실제로 동작도 () => next()를 하게 되면 미묘한 깜박임이 발생하고 위의 깃 소스대로 하게 될 경우, 깜박임이 없습니다. 

 

+ 가장 마지막 git 소스를 받아서 실행할 경우 말씀하신대로 () => next()로 되어있지만, 미묘한 깜박임이 발생합니다.

ceze님의 프로필 이미지
ceze

작성한 질문수

질문하기