안녕하세요 상훈입니다.
Vue.js 3 - composition API 에서 특정 컴포넌트에 v-model 값을 내려주는 방법을 포스팅하도록 하겠습니다.
필요요소 : 부모컴포넌트, 자식컴포넌트
소스 확인(링크를 통해 작성한 내용 확인이 가능합니다)
<script setup>
import CustomInput from './CustomInput.vue'
import {ref} from 'vue'
const message = ref('')
</script>
<template>
메시지: {{ message }} <br/>
<CustomInput v-model:message="message"/>
</template>
ref 로 message 를 선언 후
v-model 과 연동하여 자식 컴포넌트에 값을 내려준다.
<script setup>
const props = defineProps({
message: String,
})
const emits = defineEmits(['update:message'])
const updateInputs = (e, type) => {
emits(`update:${type}`, e.target.value)
}
</script>
<template>
<input
:value="message"
@input="updateInputs($event,'message')"
/>
</template>
props: defineProps 로 message 값을 받아온다고 선언
emit: props로 받아온 message 를 키 값으로 update:message 로 상신할 것을 선언
method: updateInputs 에서 받아온 event 를 기준으로 value 를 emit 시켜주는 것을 확인 할 수 있다.
업무 중에 이전 소스에서 emit('update:input') 이라고 선언되어있길래 처음 보고, 이해가 안되어 공식문서를 찬찬히 살펴보게 되었다.
v-model 관련하여 문서를 찾아보게 되었고, component v-model 이라는 곳에서 확인할 수 있었다.
내용은 제대로 익히기 위해 playground에서 작성하였다.
[ Vue.js ] WatchEffect 사용하기 - example 활용 방식 확인하기 (0) | 2023.06.20 |
---|---|
[ Vue.js ] Component 에 v-model 값 적용하기 2 / 다중 v-model (0) | 2023.06.13 |
[ Vue.js ] slot 사용방법 (0) | 2023.06.09 |
[ Vue.js ] Modal 띄우기 / teleport 사용하여 Modal 창 띄우기 (0) | 2023.02.04 |
[ Vite / Vue3 / ts ] .env 파일 사용하는 방법 / how to use .env in vite, vue3, ts(typescript) (0) | 2023.01.17 |
댓글 영역