백구의 코딩찌개
  • [SVELTE] 스벨트의 생명주기 (LIFE CYCLE)
    2024년 01월 26일 16시 27분 59초에 업로드 된 글입니다.
    작성자: 코딩백구
    반응형

    생명주기 (LIFE CYCLE)란?

    컴포넌트가 연결되고 해제되는 등의 컴포넌트 생명주기를 말합니다.

    ex) 클릭해서 toggle 이 true 로 바뀌고, Child 컴포넌트가 출력될 때, 이 Child와 연결이 되었다라고 볼 수 있다.
    (Mount 되었다 라고 말한다.)
    다시 클릭해서 toggle 이 false 가 되고, Child 컴포넌트가 사라질 때, 연결이 해제 되었다라고 볼 수 있다.
    (Destroy 되었다 라고 말한다.)
    toggle 버튼을 누를때 마다 toggle 라는 데이터가 변경되고, 그 데이터에 의해서 특정한 내용이 변한다.
    -> 반응성을 가진다.(화면이 갱신, 데이터 동기화(렌더링) 
    -> before update (바뀌기 전) 
    -> after update (바뀐 후) 로 볼 수 있다.  

     

    순서대로 정리하자면, 최초로 컴포넌트 연결 시

    beforeUpdate (DOM과 데이터를 동기화(렌더링))-> onMount -> afterUpdate -> onDestroy 의 순서이다. 

    • lifecyclelifecycle hook 이라고도 부른다. 
    • 컴포넌트를 연결해제 하면, 앞의 lifecycle은 실행되지않고, 연결해제 직전에 onDestroy 만 실행된다. 
    • 컴포넌트의 데이터를 갱신하면, onMount는 실행되지 않고, beforeUpdateafterUpdate만 실행된다. 

    Code 에서의 사용

    스벨트 코드 상에서 life cycle hook 을 사용해주기 위해서는 각각의 hook 들을 import 해서 사용할 수 있습니다.

    여기에서는 간단하게 onMount 와 onDestroy 만 다뤄보겠습니다. 

     

    onMount

    onMount 는 현재 컴포넌트가 준비되면, 콜백 함수의 내용을 실행합니다.

    즉, DOM 이 마운트 되고나서 실행될 구문들을 작성해주며, 콜백 함수 내에 return()=>{} 시 여기에 들어가게 될 내용은 onDestroy() 랑 같은 타이밍에 실행됩니다.

    onDestroy

    컴포넌트가 사라지기 직전에 실행할 구문을 콜백함수에 넣어줍니다.

     

    <script>
    	import { onDestroy, onMount } from 'svelte';
    
    	let refreshTimer: NodeJS.Timeout;
        
    	onMount(() => {
        	getMonitoringData();
    		refreshTimer = setInterval(() => {
            		getMonitoringData();
                }, refreshInterval);
            });
        
    	onDestroy(() => {
    		clearInterval(refreshTimer);
    	});
    </script>

     

    반응형

    'FrontEnd > Svelte' 카테고리의 다른 글

    [SvelteKit] Prettier 적용 안되는 문제.  (0) 2024.10.18
    [SVELTE] 스벨트 문법  (2) 2024.01.26
    [SVELTE] 스벨트란?  (2) 2023.12.28
    댓글