Как я могу вызвать метод вне области экспорта по умолчанию в vuejs + электрон? - PullRequest
0 голосов
/ 28 октября 2019

Когда я максимизирую окно с помощью перетаскивания, электрон электронов генерирует событие «максимизировать». Я хочу вызвать метод «максимизировать», который существует внутри области «экспорт по умолчанию». Как мне позвонить?

<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>

Ответы [ 2 ]

1 голос
/ 28 октября 2019

Было бы лучше зарегистрировать обработчик событий на самом компоненте, чтобы вы могли связать существование обработчика событий со временем жизни компонента, и обработчик событий будет выполняться в контексте экземпляра компонента.

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
        }
    }
}
1 голос
/ 28 октября 2019

В родительском элементе определите ссылку

<WindowTitlebar ref="titlebar" />

Затем вызовите метод через $refs

this.$refs.titlebar.maximize();
...