두 개의 dynamic 구성 요소를 만들었습니다.VUE 2.0 구성 요소 사이의 이벤트로 후크를 만드는 방법
Vue.component('component-one', {
template: '#template-a',
methods: {
onClick() {
const someObj = {
foo: "foo",
bar: "bar"
}
vm.$emit('selected', someObj)
vm.currentView ='component-two';
}
}
});
//Any hint??
/*vm.$on('selected', (someObj) => {
this.logThat(someObj)
})*/
Vue.component('component-two', {
template: '#template-b',
methods: {
onClick() {
vm.currentView ='component-one';
},
logThat(someObj) {
console.log(someObj);
}
}
});
https://jsfiddle.net/wanxe/yuh71e1o/
경우 : 이제, "logThat (someObj에)"이 바이올린에서 볼 수 있듯이 인수를 통과하는 구성 요소 두 가지의 방법을 해고 내가 필요한 events: $emit/$on 이다 사용 아무도 이것을 처리하는 방법에 대한 제안이있다, 그것은 이해 될 것이다 :)
먼저 동적 구성 요소를 더 잘 이해할 수 있도록 도와 주신 것에 대해 감사드립니다. 귀하의 예제에서 볼 수 있듯이 처음 컴포넌트 2를 실행하면 인스턴스화되지만 'selected'이벤트는 트리거되지 않습니다. 그러나 두 번째로 예상되는 결과를 얻습니다. 정적 구성 요소를 사용하고 v-show를 사용하여 전환해야한다고 분명합니다. 하지만 변수가 "ShowMe"라고 가정하면 여기서 선언합니까? vue의 인스턴스 생성에서 각 구성 요소 모두에서? – jnieto
세 번째 또는 네 번째로 클릭하면 원래 바이올린에서 더 흥미로운 결과를 볼 수 있습니다. 오래된 '구성 요소 2'는 결코 파괴되지 않습니다. 대신 매번 재생성되어 예측할 수없는 결과를 초래합니다. 여기에 업데이트 된 바이올린이 있습니다 : https://jsfiddle.net/mani04/yuh71e1o/5/ -이 글에서는 v-show를 사용하여 구성 요소를 동적으로 전환하는 대신 구성 요소를 표시하거나 숨길 수있었습니다. 여기에서 예상되는 결과를 찾을 수 있습니다. – Mani
위대한 !! 다시 한 번 감사드립니다! – jnieto