如何通过$emit和$on把当前的页面的方法给别的页面使用?

现在是想当前页面的方法给到别的页面使用, 官网上没有看到$emit和$on方法传送调用

clipboard.png

1.新建event.js的文件

import Vue from 'vue'
export let Event = new Vue()
export let KEY = 'search'

2.在当前页面引用, 在methods里面定义了full方法, 下面不知道怎么将这个方法发送出去, 然后在别的页面怎么接收

import { Event, KEY } from "../../utils/event.js";
Event.$emit(KEY, this.full());

3.别的页面, 这里不知道如何接收方法

    Event.$on(KEY, function() {});
阅读 3.2k
1 个回答

拿vue-cli刚刚初始化的项目举例,我们在HelloWorld组件中,主动触发$emit,图片描述

接着在app.vue中,直接在生命周期mounted里边通过$on接收(我个人认为相当于初始化监听)
图片描述
至此,当你点击时,将会触发控制台会输出$on接收到的值

但是如果你说的是,在当前页面发,在其他页面接收,这种如果意思是说,在组件a发,当路由跳到组件b接收的话,为什么不用路由的参数解决呢,如果这种事件发送的方式,放你发送的时候,组件b还未创建,他如何接收呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题