vue 利用$on和$emit进行页面间的跨组件传值和调用

实现目标:两个vue页面没有任何关联,其中vue1页面要调用vue2中的方法。

实现代码:

中间存储实体:

在utils下新建dataCenterBus.js文件

import Vue from 'vue';
export default new Vue();

vue1页面:(调用vue2页面中的方法)

首先引入中间实体文件

import dataCenterBus from '@/utils/dataCenterBus';

在需要调用所需方法处采用$emit引用

引号中为两个vue文件中共同定义的方法名,第二个参数为引用方法所需要传递的参数

dataCenterBus.$emit('xxxxx', xxx);

vue2页面:(提供方法的页面)

首先引入中间实体文件

import dataCenterBus from '@/utils/dataCenterBus';

在mounted处采用$on引用

引号中为两个vue文件中共同定义的方法名,index为传递的参数名,this.clickTopBtn为该页面需要传递的方法,方法名后的index为方法传递的参数。

mounted() {
        dataCenterBus.$on('xxxxx', index => {
            this.clickTopBtn(index);
        });
    },

注:两个vue页面都要引入中间实体dataCenterBus.js文件。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值