안녕하세요 상훈입니다.
Vue.js 3 - composition API 에서 특정 컴포넌트에 v-model 값을 내려주는 방법을 포스팅하도록 하겠습니다.
필요요소 : 부모컴포넌트, 자식컴포넌트
소스 확인(링크를 통해 작성한 내용 확인이 가능합니다)
Vue SFC Playground
play.vuejs.org
1. 부모컴포넌트
<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 과 연동하여 자식 컴포넌트에 값을 내려준다.
2. 자식컴포넌트
<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에서 작성하였다.
Component v-model | Vue.js
ko.vuejs.org
[VUE] 컴포넌트에 여러 개 v-model 사용하기 (props 값 바꾸기)
안녕하세요! 프뚜(프로그래머 뚜)입니다! [개발 환경] - OS: windows 10 64bit - git: 2.37.1.windows.1 - nodejs: v16.16.0 - npm: 8.15.0 - yarn: 1.22.19 - @vue/cli(vue3): 5.0.8 컴포넌트에 값을 넘길 때 props를 사용합니다. 여
ssjeong.tistory.com
'FrontEnd > Vue.js' 카테고리의 다른 글
[ 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 |