请问一下,有如下的需求:
在编辑区域的画布上,我要创建上下文菜单(contextMenu):
createContextMenu('contextmenu', (e) => {
e.preventDefault()
const menu = new Menu()
menu.append(
new MenuItem({
type: 'checkbox',
label: 'Menu-Item-1',
checked: true,
click: (): void => {
console.log('menu-item-one')
}
})
)
menu.append(new MenuItem({ type: 'separator' }))
menu.append(
new MenuItem({
label: 'Menu-Item-2',
click: (): void => {
console.log('menu-item-two')
}
})
)
menu.popup()
})
请问一个问题,就是:
1、contextMenu是在编辑区右键的时候,显示contextMenu。
那么是应该在右键的时候,创建contextMenu,不显示的时候(比如点击了item,或者点击了画布)进行销毁;
还是应该创建一个单例的contextMenu,永远不销毁呢?
2、比如在编辑区inactive的时候,是否应该销毁contextMenu?
创建和销毁 contextMenu
动态创建和销毁:
单例模式:
编辑区 inactive 时的处理
隐藏 contextMenu:
销毁 contextMenu:
总结
对于大多数应用,创建一个单例的 contextMenu 并在需要时显示或隐藏,是一个较好的选择。在编辑区 inactive 时,隐藏 contextMenu 是一个较为通用的处理方式,除非有明确的性能或内存需求需要销毁它。