現在需要做一個項目運行在一款按鍵手機上(是的,類似小靈通,但是系統是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');
}}
vue單頁應用如何管局全局事件?
阿波羅的戰車
2018-12-22 02:21:13