vue 方法中调用过滤器_VUE组件间数据方法调用总结

最近在开发移动应用,用的一个非常牛的框架,后面有机会再介绍,框架是基于VUE的。在写组件的时候,涉及到组件间的方法调用,并且有个疑问:孙子组件能够直接调用爷爷组件的方法吗?带着疑问在这里做下总结。
之前我总结过的VUE组件间的通信模式如下图所示

de8f447d59bc9055bb9f6ac87c7293eb.png

1、父组件向子组件传递数据使用props
举个例子:
子组件compA:

{{message}}

父组件调用:(记得组件注册:全局或者局部,这里的是局部)

父组件通过子组件的props属性传递了data的内容。
2、子组件向父组件传递数据使用$emit
举个例子:
子组件

+1

父组件:

总数:{{total}}

子组件的add方法通过$emit的形式调用了父组件传给子组件的方法addFather,其对应父组件的getTotle方法,并且将子组件的count值加1后传递给了父组件。


3、兄弟组件的传递数据使用中央事件总线bus
这里的中央事件总线bus,其实是又生成的vue对象:

import Vue from 'vue';

// 使用 Event Bus

const bus = new Vue();

export default bus;

兄弟组件A:

从组件A发送消息

兄弟组件B:

兄弟组件B使用bus.$on的形式,监听sendMessage方法;当兄弟组件A使用bus.$emit触发sendMessage方法的时候,就能将数据传送给兄弟组件B了。
回答文章开头的问题,孙子组件不能直接调用爷爷组件的方法,可以使用2中的方式,爷爷组件将方法传递给父组件,父组件再将方法传递给孙子组件,然后孙子组件调用该方法;或者使用3的中央事件总线的方式调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值