본문 바로가기

vue.js

Vue.js 컴포지션 옵션

반응형

Vue 인스턴스 생성 시 컴포넌트의 상속 관계나 기본 동작에 영향을 미치는 옵션을 설정할 수 있습ㄴ디ㅏ. 이를 컴포지션 옵션이라고 합니다.

 

1. parent 옵션

parent 옵션은 Vue 컴포넌트의 부모 컴포넌트를 정의하는 데 사용됩니다. 이 옵션을 사용하면 자식 컴포넌트가 부모 컴포넌트와 상호작용하거나 부모 컴포넌트의 데이터나 메서드를 사용할 수 있습니다.

<template>
<div>
<p>{{ parentData }}</p>
</div>
</template>

<script>
export default {
parent: 'ParentComponent', // 부모 컴포넌트의 이름을 지정
};
</script>

위의 코드에서 parent 옵션은 ParentComponent라는 부모 컴포넌트와의 관계를 정의합니다. 자식 컴포넌트에서 parentData를 사용하여 부모 컴포넌트의 데이터에 접근할 수 있습니다.

 

2. mixins 옵션

mixins 옵션은 컴포넌트에서 재사용 가능한 코드와 로직을 정의하는 데 사용됩니다. 믹스인은 객체 형태로 정의되며, 컴포넌트에서 불러와서 사용할 수 있습니다.

// mixins.js
export const myMixin = {
data() {
return {
mixinData: '이 데이터는 믹스인에서 옵니다.'
};
},
methods: {
sayHello() {
console.log('안녕하세요!');
}
}
};




<template>
<div>
<p>{{ mixinData }}</p>
<button @click="sayHello">인사하기</button>
</div>
</template>


<script>
import { myMixin } from './mixins.js';

export default {
mixins: [myMixin], // 믹스인을 컴포넌트에 적용
};
</script>

위의 코드에서 mixins 옵션을 사용하여 myMixin 믹스인을 컴포넌트에 적용했습니다. 이를 통해 mixinData와 sayHello 메서드를 컴포넌트에서 사용할 수 있습니다.


 

 

3. provide 옵션

provide 옵션은 데이터를 하위 컴포넌트에 제공하기 위해 상위 컴포넌트에서 사용됩니다. 부모 컴포넌트에서 데이터를 provide로 설정하고, 이 데이터는 하위 컴포넌트에서 inject로 가져올 수 있습니다.

<!-- ParentComponent.vue -->
<template>
<div>
<child-component></child-component>
</div>
</template>

<script>
export default {
provide: {
message: '안녕, Vue.js!'
}
};
</script>

 

 

4. inject 옵션

inject 옵션은 하위 컴포넌트에서 데이터를 주입받기 위해 사용됩니다. inject를 사용하여 부모 컴포넌트에서 제공한 데이터를 하위 컴포넌트에서 사용할 수 있습니다.

<!-- ChildComponent.vue -->
<template>
<div>
<p>{{ message }}</p>
</div>
</template>

<script>
export default {
inject: ['message']
};
</script>

위의 코드에서 ParentComponent에서 message를 provide로 제공하고, ChildComponent에서 inject로 message를 가져와서 사용합니다. 이를 통해 부모 컴포넌트와 자식 컴포넌트 간에 데이터를 전달하고 공유할 수 있습니다.



parent 옵션은 부모-자식 컴포넌트 간의 관계를 정의하는 데 사용되며, mixins 옵션은 재사용 가능한 코드를 여러 컴포넌트에서 공유하고 사용하는 데 사용됩니다. 이 두 가지 옵션을 통해 Vue 컴포넌트를 더 효율적으로 구성하고 코드를 재사용할 수 있습니다.

provide 및 inject는 Vue 컴포넌트 간에 데이터를 효과적으로 전달하고 공유하기 위한 강력한 메커니즘을 제공합니다. 이를 통해 컴포넌트 간에 데이터 의존성을 관리하고 재사용 가능한 컴포넌트를 작성하는 데 도움이 됩니다.

 

반응형

'vue.js' 카테고리의 다른 글

Vue.js DOM 옵션  (0) 2023.11.05
Vue.js 상태 옵션  (0) 2023.10.31
Vue.js 라이프사이클  (0) 2023.10.31
Vue.js 에서 필요한 용어  (0) 2023.10.30
Vue.js 빌드 도구  (1) 2023.10.30