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

배성연님의 프로필 이미지

작성한 질문수

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

이벤트 버스를 이용한 스피너 컴포넌트 구현

beforeDestroy 렌더 주기에 대해서

해결된 질문

21.12.07 19:18 작성

·

339

2

안녕하세요. 캡틴판교님 

주제를 벗어난것인지는 모르겠지만.. App.vue에서 bus를 이용한 이벤트들을 app 컴포넌트가 destroy되기전에  즉 인스턴스가 삭제되기 전에 off함수를 사용하여 제거를 해주는데 app 컴포넌트가 destory 되는 시점이 언제인지가 사실 정확히 이해가 되지않아서 여쭈어봅니다..

 

destroy된다는게  app 컴포넌트가 제거된다는 뜻인데  화면이 바뀌는건 app 안에있는 router-view에서 리턴되는 컴포넌트가 바뀌는건데 그건 상관이 없는것같은데 이벤트들이 쌓인다고 하셨는데 그게 이제 아예 브라우저화면을 끄면 app 컴포넌트가 제거가 되서 이전에 쌓아두었던 이벤트들을 그때 off를 통해서 없애는건지 정확하게 이해를 못하겠어서요. 

 

App컴포넌트가 destroy 되는 시점이 제가 앞서 말씀드린게 맞는건지 궁금합니다..

답변 1

1

장기효(캡틴판교)님의 프로필 이미지

2021. 12. 10. 10:48

안녕하세요 성연님, 좋은 질문이네요! :) 말씀하신 것처럼 SPA인 경우에는 App 컴포넌트 아래에 있는 router-view 컴포넌트에서 화면이 변환되는 것이기 때문에 탭이나 브라우저를 끄지 않는 이상 App 컴포넌트가 소멸되지 않습니다. 이와는 별개로 이벤트 버스는 특정 컴포넌트에서 중첩되어 리스너가 달릴 수 가 있으니 off로 해제하라고 말씀 드린 것입니다 :)

배성연님의 프로필 이미지
배성연
질문자

2021. 12. 17. 09:13

답변감사합니다!