https://jsfiddle.net/56odmcxk/42/
Я использовал Vue и смог передать методы в качестве реквизита.
В примере кода parent, child и grand child.
Child может передать метод в grandChild, который объявлен через Vue.component.
Но я не могу передать метод от родителя к ребенку.
Я новичок в Vuejs, пожалуйста, объясните, если это проблема с областью действия или методы $ root не определены при создании компонентов, вызывающих неопределенное свойство в дочернем компоненте.
PS. Я использовал код из аналогичного вопроса для демонстрации.
Vue.component('grandchild', {
template: '<div>grandchild - {{ data2.value }}</div>',
props: ['data2', "secondMethod"],
mounted(){
console.log("this is grand child");
this.secondMethod();
}
});
Vue.component('child', {
template: '<div>child - {{ data1.id }}<grandchild :secondMethod="secondMethod" v-bind:data2="data2"></grandchild></div>',
props: ['data1', 'testChildMethod'],
mounted() {
console.log("child element is mounted");
/* this.testMethod() */;
this.testChildMethod();
},
computed: {
data2() {
return {
value: this.data1.id
}
}
},
methods: {
secondMethod(){
console.log("second method");
}
}
});
let v = new Vue({
el: '#div',
data: {
data1: {
id: 3
}
},
methods: {
testMethod() {
console.log("test method is passed");
}
}
});
setInterval(function() {
v.testMethod();
/* v.data1.id++; */
}, 1000);