前言
当项目操作交互较多时,为用户提供一组快捷键是十分必要的,如:保存、撤销、复制、粘贴和调出历史记录等
分析
快捷键应该是一个全局性的能力,不论在哪个组件都应当允许使用,故应考虑做成公共函数(hooks)
注册与快捷键监听
快捷键是全局的,故在App.vue被挂载之后注册即可,这里的快捷键以ctrl开头
处理快捷键
由于在监听到快捷键时,在vuex中存储了当前的快捷键信息,故我们只需要从vuex中取出并通过computed去进行监听即可。由于快捷键所对应的操作可能是分散在不同的页面或组件当中的,故我们使用hooks将这些逻辑统一管理起来
之后就可以在不同的快捷功能组件中引入并注册回调函数即可,这里的复制并没有做过多的校验工作,默认复制出的元素位置并不是规整的,一来处理起来比较麻烦:既要判断边界,又要遍历计算相邻节位置上是否已经存在节点。由于已经支持画布中的元素进行二次拖拽,故个人认为没有太多必要
网友评论