728x90
※ 일본의 한 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다.
자식 컴포넌트에서 부모 컴포넌트 메소드등을 실행시킬 때 $emit을 사용하지만, 반대의 경우는 refs를 사용한다. refs를 사용하는 방법은 다음과 같다.
부모 컴포넌트
<template>
<div id="parent">
<!-- 자식 컴포넌트에 ref="xxx"를 설정 -->
<child ref="child_a" />
</div>
</template>
<script >
import child from './child';
export default {
components: {
child,
},
methods: {
callChildMethod() {
// $refs.<ref_name>으로 액세스
// (ref_name은 ref="xxx"에서 설정한 것)
this.$refs.child_a.helloChild();
},
},
}
</script>
자식 컴포넌트
<template>
<div id="child">
<!-- ... -->
</div>
</template>
<script >
export default {
methods: {
helloChild() {
console.log('hello from child');
},
},
}
</script>
정리
포인트는 다음과 같다.
- $refs를 사용
- ref="xxx"를 자식 컴포넌트에 설정
- this.$refs.xxx.some_method()로 자식 컴포넌트의 메소드를 호출
참고자료
https://r17n.page/2020/07/07/vue-call-child-component-method-from-parent/
728x90
'IT > 언어' 카테고리의 다른 글
[Java] Stream API의 anyMatch(), allMatch(), noneMatch() (0) | 2023.04.06 |
---|---|
[Vue.js] v-if와 v-show의 차이 (0) | 2023.03.31 |
[Vue.js/Vuetify] v-tooltip 사용법 (0) | 2023.03.29 |
[Vue.js] computed, watch, 메소드의 차이를 이해하자. (0) | 2023.03.28 |
[Vue.js] Vue를 사용한다면 알아두면 좋은 Vue 패턴과 잔기술 (0) | 2023.03.26 |