inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Svelte 입문 강의 - A부터 Z까지

이벤트 수식어

이벤트 수식어 중에서 passive 설명이 잘 이해가 되질 않습니다

1156

초보

작성한 질문수 3

1

안녕하세요

좋은 강의 잘 듣고 있습니다

passive를 적용했을때 "터치 혹은 휠 이벤트로 발생하는 스크롤 성능을 향상시킨다" 라고 설명해주셨는데요

무슨 의미인지 잘 모르겠습니다 ^^;

적용되는 또는 적용될만한 상황을 조금 더 알려주실 수 있으실까요?

svelte

답변 3

1

초보

고맙습니다~~

1

이효범(Beomy)

강의 들어주셔서 감사합니다. :)

아래 코드와 같이 터치, 휠 이벤트는 preventDefault를 사용하면 스크롤을 막을 수 있습니다.

<script>
	function handle (event) {
		event.preventDefault();
	}
</script>
<div on:wheel={handle} on:touchmove={handle}></div>
<style>
	div {
		height: 200vh;
	}
</style>

브라우저에서는 터치 혹은 휠 이벤트가 발생할 때 마다 스크롤을 할지 말지 결정을 해야 합니다. 스크롤이 발생하면 많은 이벤트가 발생하게 되는데, 이벤트 마다 스크롤을 할지 말지 판단하게 된다면 브라우저는 느려질 수 있습니다.

이때 passive 속성을 사용해서 브라우저에게 preventDefault를 사용해서 스크롤을 막지 않겠다고 알려줍니다. 그러면 브라우저는 항상 스크롤을 하는 것으로 인식하고, 스크롤 할지 말지 결정하는데 낭비되는 자원을 절약해서 성능을 향상 시킬 수 있게 됩니다.

참고가 될 만한 링크입니다.

http://sculove.github.io/blog/2016/12/29/addEventListener-passive/

https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md

https://developer.mozilla.org/ko/docs/Web/API/EventTarget/addEventListener

0

이효범(Beomy)

질문 주셔서 갑사합니다. :)

이해하기 어려운거 있다면 언제든 질문 주세요~!

프로젝트 실행이 되지 않아 menu API 테스트가 불가합니다 ㅠ

0

134

9

프론트 api.js의 요청 headers 옵션의 cors 관련 설정 질문

0

61

2

모듈 버전이 안맞아서 발생하는 문제 같습니다;;;

0

188

2

meteor 버전 때문에 실행이 안됩니다.

0

160

2

graghQL의 transaction 처리속도가 궁금합니다.

0

112

2

질문있습니다.

0

106

2

화면 구성 설명용 도구 이름

0

158

1

Meteor 실행 오류 문의 드립니다.

0

184

1

영호 좋아요 버튼이 콘솔에는 잘 찍히지만 화면에 렌더링 되지 않습니다.

0

129

2

영화목록 component 만들기 에서 질문이 있습니다.

0

209

3

"hello".toUpperCase() 가 안되는데요.

0

148

1

컴포넌트 이벤트

1

314

1

CDN이 뭔가요?

1

1662

1

혹시 다음 강의는 언제쯤??

1

333

2

강좌 범위는 아니지만요...

2

401

2

undefined 없애기

1

388

3

생명주기 중 afterUpdate가 동작하지 않는 이유를 모르겠습니다

2

464

2

질문드립니다 !

1

250

1

이 부분은 좀 어려운거 같아여

1

302

4

import Child 대소문자 차이

1

463

1

npm run dev not working

1

514

3

임포트하는 이유에 대해..

1

274

3

오류가 나요

0

303

1

프레임워크

0

217

1