inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[React 1부] 만들고 비교하며 학습하는 React

[순수JS 2] 탭 3(풀이)

[순수JS2]탭 3(풀이) 질문있습니다.

229

dohyun_lim

작성한 질문수 67

1

안녕하세요 선생님 강의 잘 듣고 있습니다.

delegate에 관해서 제가 아래처럼[(1),(2)] 이해하고 있는데 이것이 맞게 이해한것인지 궁금합니다.

 

1) delegate에서emitEvent에 담기는것은 아직 호출되지 않은 함수인데

이게 tabView생성자가 호출되는 시점에 렌더링이 되지않은(?) id =tab-view에 delegate 안의 on 메소드에 의해 바인딩이 됩니다.

 

2) 이후 id=tab-view에 click 이벤트가 발생하면 그제서야 on에 의해 바인딩되었던 이벤트처리기 (emitEvent)가 호출되어서 실제 bindEvents()에서 바인딩하려했던 handleClick 를 호출합니다.

 

 

3) 또 쓰다 보니 궁금한것이 아직 TabView의 show가 호출되기 전이긴 한데 constructor에서는 bindEvents() 메소드 안에서 delegate -> on 메소드에서 target.addEventListener를 호출하고 있는데

id=tab-view는 이미 렌더링 되었다고 표현하는것이 맞나요?

감사합니다.

react mvc

답변 1

1

김정환

1) delegate(target, eventName, selector, handler) 함수는 target에서 발생할 eventName과 handler를 바딩하는데 selector 에게 역할을 위임한다라고 생각하시면 어떻까요? 그러면 delegate(this.element, "click", "li", (event) => this.handleClick(event)) 는 "TabView에 클릭 이벤트 처리리를 바인딩하는데 정확한 타켓은 li 엘리먼트에게 위임한다" 정도로 해석해 볼 수 있겠습니다.

tabView 생성자가 호출된 시점에는 이미 id="tab-view"는 렌더되었습니다. html 파일에 이미 정의 되어 있기 때문이에요.

2) id=tab-view(target)에 click(eventName) 이벤트가 발생하면 handleClick이 실행됩니다. 이 때 delegate에 전달한 selector로 정확한 이벤트 타겟 객체를 찾는데 이게 바로 delegate 함수 안의 emitEvent의 역할입니다.

3) 네, TabView에 연결할 html은 이미 렌더되어 있습니다.

 

delegate 함수가 좀 어려울 수 있는데요. on 함수와 비교하면 역할이 좀 더 명확하게 보이실 겁니다.

  • on: 엘리먼트에 이벤트 핸들러 연결

  • delegate: 엘리먼트에 이벤트 핸들러를 연결, 단 엘리먼트 하위의 selector에게 이를 위임

1

dohyun_lim

선생님 delegate메소드가 엘리먼트 하위의 selector에게 위임 한다. 라는것이

최상위 target (this.element, #tab-view) 에서 emit 된 event("click")를 target의 하위 selector("li")들에게 이벤트 처리를 위임한다. 라고 말하면 맞는 말 인가요..?

 

delegate로직 자체는 이해를 하였는데 제 표현이 맞는 표현인지 궁금합니다.

1

김정환

네 맞습니다. 그렇게 의도한 코드에요.

리액트 1,2부 이후 후속 강의나 준비 중인 다른 강의가 있으신가요?

1

90

2

super.show() 호출하는 이유가 궁금합니다.

1

81

2

class와 constructor를 이용한 객체 지향 프로그래밍

0

224

2

mvc 패턴 질문

0

197

2

Cannot read properties of undefined (reading 'props')

0

270

2

delegate, emit 필요한 이유

0

196

2

어떤거를 먼저 들어야 하는지 도와주세요

1

265

1

localhost:8080 접속 불가

1

281

1

최근검색어 3 풀이에서

1

188

1

import 문제

1

231

1

자동변환 관련

1

203

1

sort() 질문 드립니다.

1

304

2

reset 시점에 searchResult 빈 배열로 update

2

311

2

Button에 Onclick사용

1

247

1

npx lite-server error 확인 요청드립니다.

1

470

2

node 20이상 쓸때 꿀팁

4

758

3

디버깅 관련질문이 있습니다.

1

295

1

추상화를 어떻게 받아들이면 될까요??

1

435

1

[검색폼 1] View.js 파일 질문과 학습 질문

1

329

1

on 메서드 eventName 문의

1

266

1

import에 관해서 질문드립니다

1

254

1

view.js의 on 메소드에 대해 질문드립니다

1

258

1

componentDidMount에서 getKeywordList()를 하는 이유

1

240

1

[순수JS1]검색폼2_git branch 이동관련

1

279

1