상위 슬롯의 재사용 가능한 구성 요소 액세스 하위 메서드
컴포넌트가 있다고 합니다.Reusable
방법을 써서onClick
데이터 프로포트를 설정합니다.이 컴포넌트를 재사용할 수 있도록 하고 슬롯을 사용하여 부품을 오버라이드하고 싶습니다.
내가 규범을 이해했으므로, 나는 반드시 합격해야 한다.onClick
최대 범위 속성으로서의 메서드parent
부터reusable
:
<div class="reusable">
<h2>Reusable</h2>
<slot name="clicker" v-bind:onClick="onClick">
Default stuff <button v-on:click="onClick">Close</button>
</slot>
<p v-if="clicked">You clicked me</p>
</div>
<div class="parent">
<h1>Parent</h1>
<reusable>
<template slot="clicker" scope="reusable">
<button click="reusable.onClick">
Close from parent
</button>
</template>
</reusable>
</div>
방법이 많으면 장황하고 시끄러워질지도 모릅니다.더 좋은 방법이 있을까?아니면 이게 완전 크롬인가?
레퍼런스를 사용하는 것과 부모 콜에 메서드를 사용하는 것을 검토했습니다.this.$refs.reusable.onClick
동적 컴포넌트를 지정하고 교환할 수 있습니다.두 가지 모두 직관에 반하는 것 같습니다.
오브젝트 표기법을 사용하여 슬롯의 속성을 바인드할 수 있습니다.
<slot name="clicker" v-bind="{ onClick, onInput, onCustom }">
Default stuff <button v-on:click="onClick">Close</button>
</slot>
또한 이 작업이 너무 상세해지면 오브젝트 정의를 데이터 속성으로 이동하여 템플릿에서 꺼낼 수 있습니다.
<slot name="clicker" v-bind="scopeProps">
Default stuff <button v-on:click="onClick">Close</button>
</slot>
data() {
return {
scopeProps: {
onClick: this.onClick,
onInput: this.onInput,
onCustom: this.onCustom
}
}
}
라고 하는 2개의 컴포넌트가 있다고 합시다.
재사용 가능vue:
<template>
<div class="reusable">
<h2>Reusable</h2>
<slot name="clicker">
Default stuff <button v-on:click="handleClick">Close</button>
</slot>
<p v-if="clicked">You clicked me</p>
</div>
</template>
<script>
export default {
params: {
onClick: {
type: Function,
default() {}
}
}
methods: {
handleClick() {
// default codes to execute goes here
// then call onClick() callback
this.onClick();
}
}
}
</script>
parent.vue
<template>
<div class="parent">
<h1>Parent</h1>
<reusable :on-click="onClickHandler">
<template slot="clicker">
// other codes for injecting to slot
</template>
</reusable>
</div>
</template>
<script>
import reusable from './path/to/reusable.vue';
export default {
components: { reusable },
methods: {
onClickHandler() {
// stuff to be run when button in 'reusable' got clicked
}
}
}
</script>
이것은 사용 사례에 대한 가능한 해결책 중 하나입니다.
언급URL : https://stackoverflow.com/questions/45192103/reusable-component-access-child-method-in-parent-slot
'programing' 카테고리의 다른 글
혼합 매니페스트가 존재하지 않습니다. (0) | 2022.08.07 |
---|---|
int64_t의 정의 (0) | 2022.08.07 |
술어로 첫 번째 요소 찾기 (0) | 2022.08.03 |
Java Enum 정의 (0) | 2022.08.03 |
코드의 maven pom.xml에서 버전을 가져옵니다. (0) | 2022.08.03 |