최상위 컴포넌트는 provide
, 최하위 컴포넌트는 inject
를 사용하여 컴포넌트마다 계속 전달할 필요가 없어짐
provideInject.vue
export default {
components: { ProvideInjectChild },
data() {
return {
items: ["A", "B"],
};
},
provide() {
return {
itemLength: this.items.length,
};
},
};
provide 함수를 만들어서 key: value로 만든다.
provideInjectChild.vue
<template>
<div>
<ProvideInjectChildChild />
</div>
</template>
<script>
import ProvideInjectChildChild from "./ProvideInjectChildChild";
export default {
components: { ProvideInjectChildChild },
};
</script>
ProvideChildChild.vue
<template>
<div>Item Length:{{ this.itemLength }}</div>
</template>
<script>
export default {
// props: {
// itemLength: {
// type: Number,
// default: 0,
// },
// },
inject: ["itemLength"],
};
</script>