저는 Vue.js에 익숙하지 않고 vue-class-component에서 es6 구문을 사용합니다. 나는 부모로부터 자식에게 이벤트를 내보내려고 할 때 문제가 있습니다. 나는 기본 Vue.js 구문의 논리를 따라 갔지만 끝내 버릴 수는 없습니다. 다음은 몇 가지 추가 정보입니다.
export default class HorizontalNavigation {
handleClick (e) {
e.preventDefault();
// console.log(e.target.dataset.section);
this.$emit('ChangeView', e.target.dataset.section);
}
render (h) {
return (
<div class={ style.horizontalNavigation } >
<div class='sections-wrapper'>
<div class={ style.sections }>
<ol>
<li><a on-click={ this.handleClick } href='#1' data-section='1' class='selected'>We are</a></li>
<li><a on-click={ this.handleClick } href='#2' data-section='2'>Services</a></li>
<li><a on-click={ this.handleClick } href='#3' data-section='3'>Cases</a></li>
<li><a on-click={ this.handleClick } href='#4' data-section='4'>Studio</a></li>
<li><a on-click={ this.handleClick } href='#5' data-section='5'>Career</a></li>
<li><a on-click={ this.handleClick } href='#6' data-section='6'>Contact</a></li>
</ol>
<span class='filling-line' aria-hidden='true'></span>
</div>
</div>
</div>
);
}
}
여기에 자녀가 있습니다. 모든 li에 클릭을 붙여 부모에게 전달했습니다. 그리고 여기에 부모님이 있습니다. vue.js 구문에 따라
export default class ViewsContainer {
ChangeView (data) {
console.log(data);
}
render (h) {
return (
<div class={ style.restrictOverflow } >
<HorizontalNavigation />
<main class={ style.viewsContainer } on-ChangeView={ this.ChangeView } >
<SingleView dataSection='weare' id='1' class='selected' />
<SingleView dataSection='services' id='2' />
<SingleView dataSection='cases' id='3' />
<SingleView dataSection='studio' id='4' />
<SingleView dataSection='career' id='5' />
<SingleView dataSection='contact' id='6' />
</main>
</div>
);
}
}
, 나는 ... @ChangeView을 가지고 있지만, 아무것도 요소이지만 소품을 통해 여행하지 것처럼 요소에 이벤트를 전달하여 부모로부터 차일 이벤트를 수신 할 수 있어야한다 그걸로 아무 생각 없니? 고맙습니다 !
고마워요, 크레이그! 그러나 부모님께서는 어떻게 들으실 수 있습니까? – Lou
대단히 감사합니다! Craig! ChangeView 리스너를 인스턴스 자체가 아니라 부모에 배치하여 실수를 저지른 것입니다. 그래서 내 문제를 해결하려면 : 를 ViewsContainer에서 수행해야합니다. 시간을 내 주셔서 다시 한 번 감사드립니다. –
Lou