Vue

[Vue] useAttrs( ) : 하위 컴포넌트로의 속성 전달 (Composition API)

머지?는 병합입니다 2024. 11. 11. 13:19

리액트에서 하위 컴포넌트에 속성 바인딩시

아래와 같은 문법을 사용하다 보니 문득 궁금해졌다...

// 부모 컴포넌트
<ChildComponent {...props} />

// 또는 특정 props만 전달
<ChildComponent {...{ prop1, prop2 }} />

 

 

 

아.. vue 에서 같은 기능이 머더라... 기억이 나지 않는다;

그래서 리마인딩 포스팅을 한다..

 


 `useAttrs()` 또는 `setup` 컨텍스트를 통해 attrs에 접근할 수 있습니다.

부모 컴포넌트에서 자식 컴포넌트로 여러 속성을 쉽게 전달할 때 유용합니다.

 

  • `useAttrs()`를 사용하여 attrs에 접근
  • `v-bind="attrs"`로 모든 속성을 한 번에 바인딩
  • props로 선언된 속성은 attrs에 포함되지 않음
  •  v-on 이벤트 리스너도 attrs에 포함됨
  • 컴포넌트 재사용성 향상에 매우 유용
  • inheritAttrs 옵션으로 속성 상속 제어 가능

 

<!-- BaseInput.vue -->

<template>
<input v-bind="attrs" />
</template>

<script setup>
  import { useAttrs } from 'vue'
  
  const attrs = useAttrs()
</script>

 

 

관련 포스팅 글

https://daunje0.tistory.com/88?category=1028460

 

[Vue3] props drilling 중간 컴포넌트에서 props 선언 없이 하위로 전달하기

작업 진행 중에, props 정의나 provide inject 가 없는 상황인데하위 컴포넌트에서 props 를 받아 프로세스를 진행하는 코드를 보고 정리를 합니다.개인적으로는 협업이라면 상태관리 라이브러리(vuex, p

daunje0.tistory.com