이벤트 전파DOM 트리 상에 존재하는 DOM 요소 노드에서 발생한 이벤트는 DOM 트리를 통해 전파된다. 이를 이벤트 전파라 한다. Apple Banana Orange ul 요소의 자식 요소인 li 요소를 클릭하면 클릭이벤트가 발생하며 생성되는 이벤트 객체는 이벤트를 발생시킨 이벤트 타깃을 중심으로 DOM 트리를 통해 전파된다.캡처링 단계 : 이벤트가 상위 요소에서 하위 요소 방향으로 전파타깃 단계 : 이벤트가 이벤트 타깃에 도달버블링 단계 : 이벤트가 하위 요소에서 상위 요소 방향으로 전파ul 요소에 이벤트 핸들러를 바인딩한 예제를 보며 알아보자. Apple Banana Orange 이벤트 핸들러 어트리뷰트/프로퍼티 방식으로 등록한 이벤트 핸들러는 타깃..
이벤트
이벤트 드리븐 프로그래밍브라우저는 처리해야 할 특정 사건이 발생하면 이를 감지하여 이벤트를 발생시킨다. 예를 들어, 클릭, 키보드 입력, 마우스 이동 등이 일어나면 브라우저는 이를 감지하여 특정한 타입의 이벤트를 발생시킨다. 이벤트가 발생했을 때 호출될 함수를 이벤트 핸들러라 하고, 이벤트가 발생했을 때 브라우저에게 이벤트 핸들러의 호출을 위임하는 것을 이벤트 핸들러 등록이라 한다. 브라우저는 사용자의 버튼 클릭을 감지해 클릭 이벤트를 발생시킬 수 있다. Click me! 이처럼 이벤트와 그에 대응하는 이벤트 핸들러를 통해 사용자와 에플리케이션은 상호착용하며 이런 프로그래밍 방식을 이벤트 드리븐 프로그래밍이라 한다. 이벤트 타입이벤트 타입은 이벤트의 종류를 나타내는 문자열이다. 아래의 MDN 문서에..
1.Batching 이란? Batching이란 React가 더 나은 성능을 위해 state 업데이트를 모아서 한번의 리렌더링을 진행하는 메커니즘을 말한다. 1.1 Batching의 장점은? React에서 성능적인 장점을 갖는다. 여러개의 state가 업데이트될 때마다 발생하는 불필요한 리렌더링을 막기 때문이다. 식당에서 메뉴를 주문하면 한개씩 결제하지 않고 메뉴를 종합해 한번에 결제하듯이 Batching은 한번의 리렌더링을 한다. 1.2 그렇다면 언제나 한번에 보낼까? React 18 이전까지는 그렇지 않다. 데이터를 외부에서 가져와 특정 함수 내부에서 state를 업데이트 하거나, 비동기 혹은 Promise, native 이벤트 핸들러 등 특정 상황에서는 한번에 보내지 못하고 여러번 나누어 보내기도 한..