Когда я максимизирую окно с помощью перетаскивания, электронный заголовок испускает событие «максимизировать». Я хочу вызвать метод «максимизировать», который существует в области «экспорт по умолчанию». Как я могу позвонить?
<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 ответа
Было бы лучше зарегистрировать обработчик событий на самом компоненте, таким образом вы можете связать существование обработчика событий со временем жизни компонента, и обработчик событий будет выполняться в контексте экземпляра компонента.
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
}
}
}
В родителе определите ссылку
<WindowTitlebar ref="titlebar" />
Затем вызовите метод через $refs
this.$refs.titlebar.maximize();
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.