Vue Transparent Wrapper Component

Created
Created
2021 Apr 7 7:4
Refs
Refs
<BaseInput placeholder="Waht's your name?" @focus="doSomething" />
 
<template> <label> {{ label }} <input V-bind="$attrs" :value="value" v-on="listeners" ></input> </label> </template> <script> export default { inheritAttrs: false, computed: { listeners() { return { ...this.$listeners input:event => this.$emit('input', event.target.value) } } } } </script>
 
 
 
[Vuejs] 숨겨진 Vue 패턴들
template 안에 root element 가 하나 있어야만 하는데, 사실 가끔 이게 불필요하게 느껴진다. 괜히 div로 감싸기도 좀 찝찝했는데, functional component 를 이용해서 처리하는 방법이 있다. 주의 할 부분은 @focus 부분에 .native를 붙이지 말아야 한다. (자식 컴포넌트에서 $listeners 로 전달 받지 못한다)...
[Vuejs] 숨겨진 Vue 패턴들
 
 
 
 
 
 
 
 
 

Recommendations