现在需要做一个项目运行在一款按键手机上(是的,类似小灵通,但是系统是KaiOS),项目有多个路由,很多基础组件,每个组件里面都要注册window.onkeydown事件,我现在都是复制粘贴每个组件重新注册一遍,然后在beforeRouteLeave钩子里面移除keydown事件。而且公共组件里面比如dialog、actionsheet之类的公共组件里面也各自注册window.onkeydown事件。想咨询下各位资深的前端er们,遇到此类问题是应该怎么管理比较好呢?而且按键经常冲突,因为在不同组件情况下,手机的界面的底部左中右三个按键触发的事件还是不同的,所以要加好多条件判断相关代码activated() {window.addEventListener('keydown', this.onkeyHandle);},beforeRouteLeave(to, from, next) {console.log('session list router leave');window.removeEventListener('keydown', this.onkeyHandle);
next();},onkeyHandle(evt) {let key = evt.key;switch (key) { case 'ArrowUp': //TODO
break; case 'ArrowDown': //TODO
break; case 'Enter': //TODO
break; case 'SoftRight': //TODO
break; case 'SoftLeft': // TODO
break; case 'Backspace': //TODO
break; default: console.log('default');
}}
添加回答
举报
0/150
提交
取消