鍍金池/ 問答/HTML/ 如何通過$emit和$on把當(dāng)前的頁面的方法給別的頁面使用?

如何通過$emit和$on把當(dāng)前的頁面的方法給別的頁面使用?

現(xiàn)在是想當(dāng)前頁面的方法給到別的頁面使用, 官網(wǎng)上沒有看到$emit和$on方法傳送調(diào)用

clipboard.png

1.新建event.js的文件

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

2.在當(dāng)前頁面引用, 在methods里面定義了full方法, 下面不知道怎么將這個方法發(fā)送出去, 然后在別的頁面怎么接收

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

3.別的頁面, 這里不知道如何接收方法

    Event.$on(KEY, function() {});
回答
編輯回答
怪痞

拿vue-cli剛剛初始化的項目舉例,我們在HelloWorld組件中,主動觸發(fā)$emit,圖片描述

接著在app.vue中,直接在生命周期mounted里邊通過$on接收(我個人認(rèn)為相當(dāng)于初始化監(jiān)聽)
圖片描述
至此,當(dāng)你點擊時,將會觸發(fā)控制臺會輸出$on接收到的值

但是如果你說的是,在當(dāng)前頁面發(fā),在其他頁面接收,這種如果意思是說,在組件a發(fā),當(dāng)路由跳到組件b接收的話,為什么不用路由的參數(shù)解決呢,如果這種事件發(fā)送的方式,放你發(fā)送的時候,組件b還未創(chuàng)建,他如何接收呢

2018年2月5日 19:30