Vue 앱에 키보드 단축키 추가 ⌨️
8878 단어 vuetutorialtypescriptjavascript
Vue에서 이를 수행하려면 저수준 JavaScript 이벤트 리스너 또는 vue-shortkey 과 같은 플러그인을 사용해야 합니다. vue-shortkey는 당연히 이벤트 리스너를 래핑하기 때문에 접근 방식은 실제로 다르지 않습니다. 구성 요소에 고유한 이벤트 리스너를 작성하는 것은 간단하므로 플러그인을 사용하는 데 큰 가치를 보지는 못했습니다. few blog posts covering event listeners in Vue already 가 있지만 구성 요소를 테스트하는 방법을 포함하여 여기에서 더 완전한 예를 보여 드리겠습니다.
구현
이스케이프 키를 누를 때마다 메시지를 표시하는 구성 요소를 만들고 싶다고 가정해 봅시다.
템플릿 블록:
<div>{{ message }}</div>
스크립트 블록(Typescript):
import Vue from "vue";
export default Vue.component("Demo", {
created() {
window.addEventListener("keydown", this.escapeListener);
},
// make sure you remove the listener when the component is no longer visible
destroyed() {
window.removeEventListener("keydown", this.escapeListener);
},
data: function() {
return {
message: ""
};
},
methods: {
escapeListener(event: KeyboardEvent) {
if (event.key === "Escape") {
this.message = "Escape has been pressed";
}
}
}
});
클래스 구문을 사용하려면 스크립트 블록을 다음과 같이 변경하십시오.
export default class Demo extends Vue {
private message = "";
private created() {
window.addEventListener("keydown", this.escapeListener);
}
private destroyed() {
window.removeEventListener("keydown", this.escapeListener);
}
private escapeListener(event: KeyboardEvent) {
if (event.key === "Escape") {
this.message = "Escape has been pressed";
}
}
}
테스트
이것은 모두 훌륭하지만 이 동작을 테스트하는 방법이 즉시 명확하지 않습니다. 몇 번의 잘못된 시작 후에 나는 Github issue thread with the solution 을 발견했습니다.
내가 놓친 마술은 테스트 중인 구성 요소를 장착하거나 얕은 장착할 때 Vue 테스트 유틸리티
attachToDocument
옵션을 사용하는 것이었습니다. 구성 요소를 문서에 첨부하면 wrapper.trigger
를 사용하여 키 누르기를 시뮬레이션할 수 있습니다.describe("Demo.vue", function() {
it("Displays a message when escape is pressed", function() {
const wrapper = shallowMount(Demo, { attachToDocument: true });
// the browser will add 'key' to the event,
// but when testing we need to add it manually
wrapper.trigger("keydown.esc", { key: "Escape" });
expect(wrapper.text()).to.include("Escape has been pressed");
// always make sure to destroy when using attachToDocument
wrapper.destroy();
});
});
그것이 바로 우리가 구성 요소에 추가할 때 전역 바로 가기를 테스트 구동하는 간단한 방법입니다.
Reference
이 문제에 관하여(Vue 앱에 키보드 단축키 추가 ⌨️), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/focusedlabs/add-keyboard-shortcuts-to-your-vue-app-22jg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)