Vue.js如何在一個頁面調用另外一個同級頁面的方法

使用場景:

頁面分爲header、home、footer三部分,須要在home中調用header中的方法,這兩個沒有相互引入vue

 

官方給出方法:

須要在展現頁裏調用頂部導航欄頁裏的方法,二者之間沒有引用關係,看了一下vue的API發現能夠用這個方法實現。api

https://cn.vuejs.org/v2/api/#vm-onthis

 

在項目中實現:

1.首先同一個vue實例來調用兩個方法。因此能夠創建一箇中轉站。spa

創建 util.js 中轉站文件(任意位置,我是在/assets/js/util.js)3d

import Vue from 'vue'
export default new Vue

 

2.分別在兩個頁面引入該文件(注意路徑)code

import Utils from '../../assets/js/util.js';

 

3.調用方代碼blog

methods: {
    functionA() {
        Utils.$emit('demo','msg');
    }
}

 

4.被調用方代碼get

複製代碼
mounted(){
    var that = this;
    Utils.$on('demo', function (msg) {
        console.log(msg);
        that.functionB();
    })
},
methods: {
    functionB() {
        ...
    }
}
複製代碼
相關文章
相關標籤/搜索