구성 요소 내부 구성 요소에서 호출 방법
나는 Vue.js를 배우고 있고 코드를 정리하는 방법을 찾기 위해 애쓰고 있다.나는 모든 것을 가능한 한 모듈로 만들려고 하고 있어 슬라이더를 만들 때 다음을 했다.
<template>
<div class="banners">
<slot></slot>
</div>
</template>
<script>
export default {
methods: {
echo() {
console.log('Echoing..')
}
},
mounted() {
$('.banners').slick();
}
}
</script>
그리고 내 관점에서는 단순히 구성 요소를 사용한다.
<banners>
<?php for ($i = 0; $i < 5; $i++) : ?>
<img src="http://lorempixel.com/1440/500" alt="Banner image" class="banner">
<a href="#" v-on:click="echo">Echo</a>
<?php endfor; ?>
</banners>
그런데 에코를 부르려고 하면 배너 구성요소 범위가 아닌 부모 범위에서 찾고, 방법이 정의되어 있지 않다고 한다.
나는 이것을 실행하는 가장 좋은 방법을 알고 싶다.만약 내가 그렇게 한다면, 내 프로젝트 내내 이 사례와 비슷한 수백만 가지의 다른 방법들을 가질 것이기 때문에 부모 범위 안에서 그 방법을 선언하는 것은 소용없는 일이다.나는 배너 외에 다른 모듈들뿐만 아니라 모든 배너 방법을 배너 안에 넣고 싶다.
아마도 내가 부품을 잘못 사용하고 있는 것 같은데, 이걸 사용하면 안 되는 건가?나는 단지 그 특정 구성 요소에만 관련된 것에 대해 부모 범위 안에 에코() 방법을 넣을 수 없다.어쩌면 내가 배너와 다른 일을 할 다른 요소들에 다른 메아리()를 갖게 될 것이라고 상상해보라.
나도 PHP를 통해 데이터를 얻어야 하기 때문에 템플릿 안쪽으로 슬롯 내용을 옮길 수 없어. 그래서 슬롯 안쪽으로.
이러한 특별한 상황에서는 범위 슬롯을 사용해야 한다.
구성 요소에서 슬롯에서 사용할 수 있는 속성을 전달하십시오(이 경우echo
방법.
<div class="banners">
<slot :echo="echo"></slot>
</div>
앱 템플릿에서 슬롯에 삽입할 콘텐츠를 범위 속성이 있는 템플릿 태그로 감싸십시오.
<banners>
<template slot-scope="props">
<?php for ($i = 0; $i < 5; $i++) : ?>
<img src="http://lorempixel.com/1440/500" alt="Banner image" class="banner">
<a href="#" v-on:click="props.echo">Echo</a>
<?php endfor; ?>
</template>
</banners>
여기 예가 있다.
슬롯에 전달된 모든 항목을 사용하지 않아도 되거나 쓰기를 피할 수 있는 경우 범위 지정 속성을 손상시킬 수도 있음props.echo
매번
<banners>
<template slot-scope="{echo}">
<?php for ($i = 0; $i < 5; $i++) : ?>
<img src="http://lorempixel.com/1440/500" alt="Banner image" class="banner">
<a href="#" v-on:click="echo">Echo</a>
<?php endfor; ?>
</template>
</banners>
상위 구성요소를 참조로 참조할 수도 있다.
<banners ref="TheBanner">
<?php for ($i = 0; $i < 5; $i++) : ?>
<img src="http://lorempixel.com/1440/500" alt="Banner image" class="banner">
<a href="#" v-on:click="$refs.TheBanner.echo()">Echo</a>
<?php endfor; ?>
</banners>
참조URL: https://stackoverflow.com/questions/44103424/call-method-from-component-inside-components-slot-slot
'programing' 카테고리의 다른 글
Vuex axi에서 어레이 업데이트 발생 (0) | 2022.04.11 |
---|---|
프로덕션 빌드에서 js 및 css 파일의 파일 경로 변경 (0) | 2022.04.11 |
돌연변이의 페이로드 인수만 사용하여 Vuex 상태를 수정해도 되는가? (0) | 2022.04.11 |
동적 사용자 지정 구성 요소에 대한 V 유효성 검사 (0) | 2022.04.11 |
5.1 레일의 Vue JS 2 '이 파일 형식을 처리하려면 적절한 로더가 필요할 수 있다.' (0) | 2022.04.11 |