e.stopPropagation()에 대해서 질문있습니다.
191
작성한 질문수 1
e.stopPropagation()으로 이벤트 버블링을 막지 않으면
remove 버튼을 클릭했을 때 상위태그인 li태그(검색기록)의 이벤트가 같이 발생해서
검색기록 제거와 동시에 해당 li 클릭으로 인해 검색이 되어서 검색결과도 같이 출력이 된다로 이해했는데요.
저는 stopPropagation 사용 안하고 KeywordView의 onClickKeyword 함수에 ` if(e.target.tagName == 'BUTTON'){ return ; }`를 추가해 동일한 기능을 하도록 했습니다.
제가 잘 이해했는지, 뭐가 더 권장되는 방법인지 궁금하고 맞게 사용했는지 궁금합니다.
답변 1
3
네 정확이 이해하셨습니다.
이벤트 객체의 targetName으로 식별하는 것도 같은 결과를 낳기는 한데요. '읽기 쉬운 코드인가?'라는 의문이 듭니다. 여기서 'BUTTON'이 삭제 버튼인지 아닌지는 바로 알기 어렵기 때문이에요. 그리고 삭제 버튼 말고도 다른 버튼이 발생한 이벤트도 무시해 버릴수 있기 때문에 의도한대로 동작하지 않을 수도 있고요.
명확하게 '이벤트 전파를 막겠어'라는 의도의 stopPropagation() 함수 사용을 추천 드립니다.
강사님, 브랜치명 어떻게 만드셨어요?
2
209
1
이미지 파일 업데이트가 안돼있는 거 같습니다
1
502
1
git사용법을 잘 모르겠습니다..
1
495
1
@event 질문입니다.
1
254
1
return 문자열이 여러줄은 어떻게 설정하나요?
1
645
2
탭뷰에서 이벤트를 받아서 메인컨트롤러에게 전달만해주는 방식도 괜찮나요?
1
257
1
ResultComponent.vue 에러?
1
251
1
선생님 안녕하세요!
0
247
1
return new Promise 와 return Promise.resolve
2
474
1
바닐라
1
320
1
실습 관련 질무
1
248
1
event.preventDefault() 문의
1
289
1
컴퍼넌트 질문이 있습니다.
0
209
1
return this에 대해서 (재업로드)
0
355
1
return this에 대해서 이해가 잘 되지 않아요
0
1175
1
강의 내용을 따라 했는데도 안되는 문제
1
308
2
크롬으로 로컬 띄었더니 에러가나네요
1
322
0
에러가 나네요
1
328
2
git checkout 중에 질문드립니다.
1
302
1
bindEvent 메소드를 왜추가하는지 궁금해서 질문드립니다.
2
576
1
안녕하세요 vue.js 처음 입문하는데 강사님 강의로 시작하게 되었습니다.
0
215
1
index 페이지에서 main.js 관련 질문입니다
1
200
1
학습내용 정리 관련 질문입니다!
0
177
1
lite-server로 구현해야하는 이유는 무엇인가요~?
1
518
2





