자식 컴포넌트에 input 태그, checkbox 같은 form 태그가 없으면 v-model 안 쓰는건가요?
577
投稿した質問数 25
<!-- 부모.vue -->
<template>
<custom-counter v-model="counterValue" />
<template>
<script>
import CustomCounter from './CustomCounter.vue';
export default {
components: {
CustomCounter,
},
data() {
return {
counterValue: 0,
};
},
};
</script>
<!-- CustomCounter.vue -->
<template>
<div>
<p>{{ message }}</p>
<p>{{ value }}</p>
<button @click="increment">+</button>
<button @click="decrement">-</button>
</div>
</template>
<script>
export default {
props: {
value: {
type: Number,
default: 0,
},
},
data() {
return {
localValue: this.value,
};
},
computed: {
message() {
return `The current value is ${this.localValue}`;
},
},
methods: {
increment() {
this.localValue++;
},
decrement() {
this.localValue--;
},
},
watch: {
localValue(newValue) {
this.$emit('input', newValue);
},
},
};
</script>
이렇게 커스텀 컴포넌트에서 v-model을 사용할 때 만약에 자식 컴포넌트의 template에 input 태그 같은 게 없으면 사용 못 하는 건가요?
回答 1
0
안녕하세요.
Q) v-model을 사용할 때 만약에 자식 컴포넌트의 template에 input 태그 같은 게 없으면 사용 못 하는 건가요?
아니요 v-model은 input 태그와 관계 없이 사용할 수 있습니다. 아래 다양한 예제가 있으니 참고하시면 좋을 것 같아요.
https://vuejs.org/guide/components/v-model.html
0
https://vuejs.org/guide/components/v-model.html 에서는 input 태그 없이 v-model을 사용하는 예시가 없는데 혹시
input, checkbox, select/option 같은 태그 없이 <컴포넌트 v-model> 을 사용하는 예시를 들어주실 수 있나요?
0
안녕하세요.
modelValue props와 update:modelValue emits을 잘 활용하시면 되는데요 아래 간단한 예제입니다.
// App.vue (부모 컴포넌트)
<template>
<div>
<Counter v-model="counter" />
<button @click="counter++">parent click!!</button>
</div>
</template>
<script setup>
import Counter from './components/Counter.vue';
import { ref } from 'vue';
const counter = ref(0);
</script>// Counter.vue (자식 컴포넌트)
<template>
<button @click="$emit('update:modelValue', modelValue + 1)">Click!! {{ modelValue }}</button>
</template>
<script setup>
defineProps({
modelValue: {
type: Number
}
})
defineEmits(['update:modelValue'])
</script>
npm init vue@3.1.9
0
37
2
크롭 웹스토어 vue devtools 설치 관련
0
39
1
snippets 작성하는 부분 설명이 있었나요?
0
47
2
computed 의 set 함수를 통해 const 변수에 값을 담는 부분
0
52
2
소스 공유 어디서 해야하는지 궁금합니다
0
60
2
component 등록과 사용
0
57
2
강의교안
0
56
2
eslint 룰 관련 질문이 있습니다.
0
64
2
npm init -y 명령어 실행에 관한 질문
0
153
2
volar 가 마켓플레이스에 검색되지 않아 vue(official)을 설치했습니다.
0
167
2
깊은 감시자 질문
0
88
2
정리된 내용
0
153
2
화면이 왜 이렇게 뜨는걸까요?
0
184
2
왜 다르게 뜰까요..?ㅠㅠ
0
155
2
npm init vue , npm create vue@latest 명령 오류
0
289
2
강의를 듣다보니 궁금한 점 질문드립니다.
0
141
2
watch강의 질문
0
153
1
강의 듣다가 질문드립니다.
0
119
1
이벤트 처리 부분 강의 실습
0
140
2
v-pre는 설명이 없나요?
0
152
2
AppCard.vue 만들다 말고 오류가 갑자기 엄청 뜹니다
0
146
1
개발자도구 Vue 탭 관련 문의
0
240
2
강의를 인텔리제이로 수업따라가도 되져?
0
177
2
API 사용시 자동으로 import하는 기능은 어떤것을 설치해야 하나요?
3
276
2

