VUE2组件调用父爷太级函数的疑问
用VUE2写了一个组件,这个组件最后需要调用使用这个组件的页面的函数。这个页面可能是这个组件的父辈,也可能是爷爷辈,也可能是太太辈.....
之前一直是爷爷级,就这样写了:
that.$parent.$parent.uploadimg(that.photo);
现在可能是太太级也可能是父亲级的调用,我该怎么写?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
provide和inject可以解决,provide可以向所有子孙组件提供数据以及提供修改数据的方法,子孙组件用inject使用数据或方法
给一个elementUI源码中的方法,原理就是向上遍历查找对应的父级组件,找到对应的父级组件实例之后,调用其方法。
这个方法比较重要的一点就是根据componentName去查找,所以每个组件都必须要有该参数,当然也可以根据自己需求修改成其他对应的参数
自定义事件更适合吧
将方法抽离出来写在vuex中可以,也可以走广播
使用provide / inject,可以不受层级限制
官方文档链接