반응형
VueJs에서 기능별로 키 누름 처리
내 컴포넌트에는 다음과 같은 VueStrap의 모달(모달)
<template>
<modal-window v-model="show" v-on:keyup="keyHandler($event)" @ok="submit()" @cancel="cancel()" @closed="close()" ... >
...
</modal-window>
...
</template>
<script>
...
methods: {
keyHandler (event) {
console.log(event);
}
},...
</script>
모달이 열리면 핸들 키를 누르고, 눌러서 들어갈 때는 제출 모드, 에스크를 누를 때는 닫기 모달의 제출 여부를 확인하고 싶다.
사용자 지정 기능을 추가했다.keyHandler
불행히도 절대 해고되지 않아그 기능에서 키 누름 처리 코드를 어떻게 수정하는지 알려주시겠습니까?아니면 부에 스트랩 모달의 닫기와 제출 방법이 더 좋을 때 나는 조언에 감사할 것이다.감사합니다.
이벤트 핸들러를 에 첨부할 수 있다.window
이렇게 하면 모든 주요 이벤트를 수신하고 모달의 상태에 따라 적절하게 행동할 수 있다.
Vue.component('modal', {
template: '<div>test modal</div>',
});
new Vue({
el: "#app",
created() {
window.addEventListener('keydown', (e) => {
if (e.key == 'Escape') {
this.showModal = !this.showModal;
}
});
},
data: {
showModal: true
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.min.js"></script>
<div id="app">
<modal v-show="showModal"></modal>
</div>
가장 쉬운 방법
<input v-on:keyup.13="whatkey()" type="text"> <br>
입력 키를 누르면 whatkey라는 메서드를 발사한다.
또는 다음 중 하나를 사용하는 것을 고려해 보십시오.v-hotkey
Vue의 키 입력에 대한 지시(docs, github).이렇게 하면 여러 가지 다른 키 입력을 고려해야 하는 경우 코드가 비교적 깨끗하고 간단하게 유지된다.
1. 설치:
npm i --save v-hotkey
Vue에게 '사용'을 요청하십시오.
v-hotkey에서 VueHotkey 가져오기; Vue.use(VueHotkey);
3. Vue 구성 요소에 다음과 같이 적용:
<template>
<modal-window ... v-hotkey="keymap">
...
</modal-window>
</template>
<script>
...
data() {
return {
showModal: false
};
},
computed: {
keymap() {
return {
"esc": this.toggleModal
};
}
},
methods: {
toggleModal() {
this.showModal = !this.showModal;
}
}
</script>
참조URL: https://stackoverflow.com/questions/50395674/handle-key-press-by-function-in-vuejs
반응형
'IT이야기' 카테고리의 다른 글
Vue.js의 URL에서 쿼리 매개 변수를 가져오는 방법 (0) | 2022.03.22 |
---|---|
Vue2에서 디바운스를 구현하는 방법? (0) | 2022.03.22 |
반응-Native FlexDirection: 여러 줄로 '행' (0) | 2022.03.22 |
@click과 v-on의 차이:Vuejs 클릭 (0) | 2022.03.22 |
vue 구성 요소에서 변수를 정의하는 방법(Vue).JS 2) (0) | 2022.03.22 |