Ketika saya memaksimalkan jendela melalui drag titlebar elektron memancarkan acara 'memaksimalkan'. Saya ingin memanggil metode 'maksimalkan' yang ada di dalam lingkup 'ekspor default'. Bagaimana saya bisa menelepon?

<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>
0
Mireli Eyyubzade 28 Oktober 2019, 00:17

2 jawaban

Jawaban Terbaik

Akan lebih baik untuk mendaftarkan event handler pada komponen itu sendiri, dengan cara itu Anda dapat mengikat keberadaan event handler ke masa pakai komponen dan event handler akan dieksekusi dalam konteks instance komponen.

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
Decade Moon 27 Oktober 2019, 21:58

Di induk, tentukan referensi

<WindowTitlebar ref="titlebar" />

Kemudian panggil metode melalui $refs

this.$refs.titlebar.maximize();
1
Stephen Thomas 27 Oktober 2019, 21:30