반응형

2024/02 5

25. Lifecycle Hooks

Lifecycle Hooks 각각의 Vue 컴포넌트 인스턴스는 생성되고 소멸될 때 사전에 정의된 몇 단계의 과정을 거치게 되는데 이를 라이프사이클 훅(lifecycle)이라 합니다. 라이프사이클 훅(Lifecycle hooks)은 라이프사이클 단계에서 개발자가 자신의 코드를 추가할 수 있는 계별 기능(function)입니다. Lifecycle 다이어그램 다음은 인스턴스 수명 주기에 대한 다이어그램입니다. 지금 진행 중인 모든 것을 완전히 이해할 필요는 없지만 더 많이 배우고 구축함에 따라 유용한 참고 자료가 될 것입니다. Lifecycle hooks 등록 컴포넌트가 렌더링을 완료하고 DOM 노드를 만든 후 onMounted hooks를 사용하여 코드를 실행할 수 있습니다. import { onMounte..

24. Provide / Inject

부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달할때 Props를 사용해서 데이터를 전달했다. 그런데 전달해야 하는 Props의 길이가 깊다면? 그것도 깊이가 아주 깊다면? 이런 경우에는 모든 컴포넌트 사이에 Props를 전달 해야함으로 굉장히 번거롭다. 중간에 있는 컴포넌트는 단순히 하위 컴포넌트에 데이터를 전달하기 위해 Props를 선언해야 한다. 이렇게 하위 컴포넌트를 단순히 Props를 전달하기 위한 컴포넌트로 쓰는걸 Prop Drilling 이라고 한다. 이런 문제를 해결할수 있는것이 바로 Provide와 Inject다. 이걸 사용하면 계층구조의 깊이에 상관없이 모든 자식 컴포넌트에 데이터를 전달 할 수 있다. Prop Drilling 일반적을 부모 컴포넌트에서 자식 컴포넌트로 데이터를 전달해야 ..

23. Slot

Slot 이란? HTML 요소와 마찬가지로 우리가 만든 컴포넌트에 콘텐츠를 전달할 수 있으면 유용합니다. 컴폰넌트를 만든 후 콘텐츠를 전달해 보도록 하겠습니다. slot을 사용하는 방법은 매우 간단합니다. 컨텐츠를 위치하게 하고 싶은곳에 컴포넌트를 배치 시키면 됩니다. 그리고 사용하는 쪽에 아래 예시처럼 컨텐츠를 넣으면 됩ㄴ디ㅏ. 위에 정의한 컴포넌트를 부모 컴포넌트에서 사용해 보겠습니다. Click!! 여기서 작성된 콘텐츠는 이 선언된 위치에서 그대로 사용됩니다. 요소는 부모 컴포넌트에서 제공하는 콘텐츠를 나타내는 슬롯 콘텐츠 입니다. 그리고 슬롯은 텍스트뿐만아니라 HTML요소, 컴포넌트 등 다양한 모든 콘텐츠가 될 수 있습니다. Click me ! Fallback Content 상위 컴포넌트에서 슬롯..

22. Non-Prop 속성 (fallthrough 속성)

Non-Prop 속성 (fallthrough 속성) Non-Prop 속성은 props 또는 event에 명시적으로 선언되지 않은 속성 또는 이벤트 입니다. 예를 들어 class, style, id와 같은 것들이 있습니다. 속성 상속 컴포넌트가 단일 루트 요소로 구성되어 있으면 fallthrough 속성은 루트 요소의 속성에 자동으로 추가됩니다. 예를들어 이라는 컴포넌트가 있다고 가정해보겠습니다. 그리고 이 컴포넌트를 사용하는 부모 컴포넌트는 다음과 같습니다. 최종 렌더링된 DOM은 다음과 같습니다. 최종 렌더링은 자식 컴포넌트의 루트 엘리먼트에 이렇게 상속됩니다. 루트 엘리먼트란? 컴포넌트의 template 태그 속에서 제일 상위 요소입니다. 예: template 바로 밑에 있는 div가 루트 엘리먼트 ..

21. Events

Events 자식 컴포넌트에서도 부모 컴포넌트로 데이터를 전달 또는 트리거의 목적으로 이벤트를 내보내는것을 말합니다. 그리고 이벤트는 컴포넌트의 emit 메서드를 통하여 발생시킬수 있습니다. 이벤트 발생 및 수신 컴포넌트의 블록 안에서 내장 함수 $emit()을 사용하여 직접 커스텀한 이벤트를 내보낼 수 있습니다. 그러면 부모 컴포넌트에서 v-on(또는 @)을 사용하여 이벤트를 수신할 수 있습니다. .once 수식어는 컴포넌트 커스텀 이벤트에서도 지원됩니다 이벤트 파라미터 이벤트와 함께 특정 값을 내보낼 수 있습니다. $emit 함수 이벤트명에 추가로 파라미터를 넘길 수 있습니다. 그런다음 부모 컴포넌트에서 이벤트와 함께 파라미터를 받을 수 있습니다. 이벤트 선언하기 Vue2와 다르게 Vue3에는 emi..

반응형