반응형
vue 컴포넌트에서 App.vue 메서드를 호출하는 방법
아래와 같이 vue 컴포넌트와 vue 요소 선언이 있습니다.
Vue.component('todo-item', {
template: '<li>This is a todo</li>'
methods: {
test: function() {
// I am getting an error here
app.aNewFunction();
}
}
})
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
},
methods: {
aNewFunction: function() {
alert("inside");
}
}
})
vue 구성 요소에서 vue app의 메서드를 호출하려면 어떻게 해야 합니까?
루트 인스턴스 메서드는 다음과 같이 실행할 수 있습니다.this.$root.methodName()
Vue.component('todo-item', {
template: '<li>This is a todo</li>',
methods: {
test: function() {
this.$root.aNewFunction();
}
},
mounted() {
this.test();
}
})
new Vue({
el: '#app',
template: '<todo-item></todo-item>',
methods: {
aNewFunction: function() {
alert("inside");
}
}
})
Vuejs 아키텍처에 더 부합하는 또 다른 솔루션은 자녀 컴포넌트와 부모 컴포넌트 간에 이벤트 리스너와 이미터를 사용하여 통신을 하는 것입니다.
이 간단한 바이올린을 환영으로 확인하세요.
Vue.component('todo-item', {
template: '<li>This is a todo</li>',
methods: {
test: function() {
console.log('Emmit this Event.');
this.$emit('yourevent');
}
},
created() {
this.test();
}
});
new Vue({
el: '#vue-app',
data: {
'message': '',
},
methods: {
aNewFunction(event) {
console.log('yourevent Is Triggered!');
this.message = 'Do Stuff...';
},
}
});
언급URL : https://stackoverflow.com/questions/43292810/how-to-call-methods-in-app-vue-from-the-vue-components
반응형
'source' 카테고리의 다른 글
VueJS/nuxt 'state'는 store/store.js의 개체를 반환하는 메서드여야 합니다. (0) | 2022.08.29 |
---|---|
Java 8에서 String.chars()가 int의 스트림인 이유는 무엇입니까? (0) | 2022.08.29 |
Vuex 스토어에서 Vue-Resource 사용 중 최대 콜스택 크기 오류 가져오기 (0) | 2022.08.29 |
소품 변경 시 계산된 속성이 업데이트되지 않습니다. (0) | 2022.08.29 |
Vuejs 2 @click.middle이 작동하지 않음 (0) | 2022.08.29 |