인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

Truestar님의 프로필 이미지
Truestar

작성한 질문수

Svelte.js [Core API] 완벽 가이드

12. 자동으로 수정 모드 종료(autoFocusout.js, Actions)

setTimeout() VS tick() 처리로직 과 `범용성`에 관한 질문 입니다

해결된 질문

작성

·

330

1

아래 Wondam Jung 님 질문에서 정리 해 주신글 잘 보았습니다. 댓글로 질문을 남기려다 관련성이 떨어진다 싶어 새로 질문을 작성했는데요,


저는 `tick()` 적용하시리라 생각했는데 setTimeout 은 의외적으로 느껴졌습니다.

  1.  컴포넌트 외부에서는 tick() 처리를 하지 않으신 이유를 알수 있을까요?
    (tick() 처리가 효율적이지 않아서일까요?? 아니면 다른 문제가 있는건지...)
    그리고,

  2. setTimeout 처리 방식을 다른 라이브러리같은
    Vue 나 React 의 경우에도 사용이 가능하겠지요?
    (내부적으로 처리되게 하는 방식이 있겠지만요..)



읽어주셔서 감사합니다.

답변 2

1

Truestar님의 프로필 이미지
Truestar
질문자

찾아보니 엄청 골이 깊은 내용이군요..
답변 감사합니다🙂

알려주신 process.nextTick.js 에 관한 글 공유합니다.
Outsider's Dev Story - process.nextTick() 이해하기

1

HEROPY님의 프로필 이미지
HEROPY
지식공유자

이유는 아주 간단합니다.
tick은 Svelte 데이터의 화면 갱신(반응성) 이후 처리에 관한 기능이고,
setTimeout은 기본 콜 스택 지연 실행에 관한 활용입니다.
물론 tick 내부 구현도 setTimeout을 활용하는 등 원리는 비슷합니다만,
서로 목적이 다르다고 이해하시면 쉬울 듯합니다.

setTimeout을 활용한 처리 방법은 Vue, React와는 전혀 상관없이 필요한 곳에서 마음껏 사용하시면 됩니다.
사실 setTimeout 활용도 개념 설명이 쉬운 편이라 강의에서 사용하지만,
살짝 구식이라 다음 링크의 코드를 참고해 보시면 좋을 듯합니다.

process.nextTick.js

Truestar님의 프로필 이미지
Truestar

작성한 질문수

질문하기