如何在 vuejs+electron 中调用 'export default' 范围外的方法?

How can I call method outside 'export default' scope in vuejs+electron?

当我通过拖动标题栏最大化 window 时,电子会发出 'maximize' 事件。我想调用存在于 'export default' 范围内的 'maximize' 方法。怎么打电话?

<template>
    <div class="window-titlebar">
        <div class="title">{{ title }}</div>
    </div>
</template>

<script>
const electron = require('electron');
import { ipcRenderer } from 'electron';

export default {
    name: 'window-titlebar',
    data() {
        return {
           title: false
        }
    },
    methods: {
        maximize: function() {
            this.title = true;
        }
    }

}

ipcRenderer.on('maximize', () => {
    // I want to call 'maximize' method here
})

</script>

在父级中,定义一个引用

<WindowTitlebar ref="titlebar" />

然后通过$refs

调用方法
this.$refs.titlebar.maximize();

最好在组件本身上注册事件处理程序,这样您就可以将事件处理程序的存在与组件的生命周期联系起来,并且事件处理程序将在组件实例的上下文中执行。

export default {
    name: 'window-titlebar',
    data() {
        return {
            title: false
        }
    },
    created() {
        ipcRenderer.on('maximize', this.onMaximize)
    },
    destroyed() {
        ipcRenderer.off('maximize', this.onMaximize)
    },
    methods: {
        onMaximize() {
            this.title = true
        }
    }
}