Vue의 v-on 객체 구문을 사용하는 이유는 무엇입니까?
3344 단어 vuejavascripteventslisteners
나는 정적 타이핑의 열렬한 팬이며 그것이 보다 즐거운 개발 경험을 갖는 데 도움이 될 수 있다고 굳게 믿습니다. 코드가 더 강력한지 아닌지 논쟁하지 않을 것입니다. 코드 추상화를 쉽게 형성할 수 있습니다. 두 가지 모두 즐거운 코딩 경험과 관련이 있습니다. 여기서 아이디어는 typescript로 더 잘 구현될 수 있지만 일반 자바스크립트에서도 똑같이 유용하다는 것을 알았습니다.
이벤트에 문자열을 사용한 다음 리스너에 대한
@
바로 가기 표기법을 사용하는 대신. 개체 또는 열거형을 만들고 거기에 있는 모든 이벤트를 사전으로 만든 다음 사전 값을 키로, 수신기를 값으로 갖는 다른 개체를 만드는 것이 좋습니다. 이것의 단점은 @event
를 사용하는 것보다 조금 더 장황하다는 것입니다.Vue의 문서에서는 API 섹션의 v-on에 대한 개체 구문 아래에 나타납니다. 코드에서 다음과 같습니다.
<template>
<some-vue-component
v-on="someVueComponentListeners"
/>
</template>
<script>
// This should be part of SomeVueComponent SFC
const SomeVueComponentEvents = {
CLICK: 'click',
CUSTOM_EVENT: 'custom-event'
};
// We assume somewhere inside of it there is a:
// this.$emit(SomeVueComponentEvents.CLICK);
// this.$emit(SomeVueComponentEvents.CUSTOM_EVENT);
const someVueComponentListeners = {
[SomeVueComponentEvents.CLICK]: () => { /* do something */},
[SomeVueComponentEvents.CUSTOM_EVENT]: () => { /* do something */},
};
</script>
일관된 검색
이러한 이벤트 처리 방법의 첫 번째 장점은 검색이 매우 쉽다는 것입니다. 이미터와 리스너 모두 동일한
Object.Key
표기법을 가집니다.로직을 스크립트 섹션으로 이동
모든 논리는 SFC의 스크립트 섹션에서 사용할 수 있습니다. 아마 여전히 때때로 템플릿을 확인해야 하지만 이제 어떤 핸들러가 어떤 이벤트에 해당하는지 확인하기 위해 템플릿으로 이동할 필요가 없습니다.
더 간결한 템플릿
이전 요점의 결과로 이제 구성 요소 태그가 정리되어 많은 핸들러가 있는 컨테이너 구성 요소에서 특히 볼 수 있습니다. 이제 어떤 처리기가 구현되었는지 템플릿에서 더 이상 알 수 없습니다(사용 중인 IDE에 따라 볼 수 있으며 VS Code IntelliSense에서 이 정보를 제공함).
읽어 주셔서 감사합니다. 귀하의 생각과 의견을 기꺼이 읽겠습니다. 이 게시물이 흥미로웠다면 여기 또는 Twitter에서 저를 팔로우해 주세요.
Reference
이 문제에 관하여(Vue의 v-on 객체 구문을 사용하는 이유는 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/migsarnavarro/why-to-use-vues-v-on-object-syntax-1991텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)