如何在 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
}
}
}
当我通过拖动标题栏最大化 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
}
}
}