这是子组件的传参事件
methods: {
imgs_click () {
var that=this;
this.$axios.get('http://localhost/class/imgl?ID='+that.imgsrc.ID)
.then(function(res){
var aaa= JSON.parse(JSON.stringify(res.data));
// alert(aaa[0].author);
that.$emit('message_from_imgs',res.data);
})
.catch(function(error){
console.log("失败");
console.log(error);
})
}
},
这是父组件的网页代码及事件代码
<imgs v-on:imgs_methods="message_from_imgs"></imgs>
message_from_imgs: function (childValue) {
alert("111");
this.imgl_message = childValue;
},
如代码所示,按照我的想法,子组件点击事件(imgs_click)发生以后,子组件先从后台拿到数据,然后通过$emit传给父组件,父组件再把拿到的childvalue用钩子函数写进一个空对象,但是父组件的message_from_imgs 事件里alert("111")始终没有触发,
而且浏览器控制台有个报错是data functions should return an object,我检查了所有data,都是用return包起来且完整的。
想了一个下午还是没弄出来。。请问各位大神这是什么原因?
先弄清楚两个概念就不会混了
这里有一个例子: