이번에는 vue용 커스텀 컴포넌트에서 v-model을 사용하는 단계에 대해 자세히 설명하겠습니다. vue에서 커스텀 컴포넌트에서 v-model을 사용할 때의 주의사항은 무엇인가요? .
v-model 지시어 소위 "명령"은 실제로
HTML 태그기능(속성)을 확장합니다. 먼저 vue-model이 없는 컴포넌트, 정상적인 아버지와 아들의 의사소통
<!-- parent --> <template> <p class="parent"> <p>我是父亲, 对儿子说: {{sthGiveChild}}</p> <Child @returnBack="turnBack" :give="sthGiveChild"></Child> </p> </template> <script> import Child from './Child.vue'; export default { data() { return { sthGiveChild: '给你100块' }; }, components: { Child }, methods: { turnBack(val) { this.sthGiveChild = val; } } } </script>
<!-- child --> <template> <p class="child"> <p>我是儿子,父亲对我说: {{give}}</p> <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="returnBackFn">回应</a> </p> </template> <script> export default { props: { give: String }, methods: { returnBackFn() { this.$emit('returnBack', '还你200块'); } } } </script>
응답을 클릭한 후 아버지가 아들에게 한 말이 아들의 응답이 됩니다. 아들이 받은 정보도 바뀌어 소통이 가능해졌다.
v-model로 전환<!-- parent -->
<template>
<p class="parent">
<p>我是父亲, 对儿子说: {{sthGiveChild}}</p>
<Child v-model="sthGiveChild"></Child>
</p>
</template>
<script>
import Child from './Child.vue';
export default {
data() {
return {
sthGiveChild: '给你100块'
};
},
components: {
Child
}
}
</script>
<!-- child -->
<template>
<p class="child">
<p>我是儿子,父亲对我说: {{give}}</p>
<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="returnBackFn">回应</a>
</p>
</template>
<script>
export default {
props: {
give: String
},
model: {
prop: 'give',
event: 'returnBack'
},
methods: {
returnBackFn() {
this.$emit('returnBack', '还你200块');
}
}
}
</script>
카피라이팅은 다르지만 효과는 결국 같습니다.
공식 커스텀 컴포넌트의 v-model을 살펴보세요
공식 예시
https://vuefe.cn/v2/api/#model다음 문장이 있습니다: 기본적으로 컴포넌트의 v-model은 값을 소품으로 사용하고 입력을 이벤트로 사용합니다.
위 하위 구성 요소의 예를 변경해 보면 작동할 것입니다.
<!-- child --> <template> <p class="child"> <p>我是儿子,父亲对我说: {{value}}</p> <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="returnBackFn">回应</a> </p> </template> <script> export default { props: { value: String }, methods: { returnBackFn() { this.$emit('input', '还你200块'); } } } </script>
요약하자면: 게으르고 이벤트를 직접 처리하고 싶지 않은 경우 기본 '값'을 사용하세요. && '입력' 이벤트를 처리할 경우 네이티브 이벤트를 사용하는 경우 모델 속성도 생략할 수 있습니다.
코드를 더 명확하게 하고 맞춤 이벤트를 구별하고 싶다면 다음 조합이 가장 좋습니다.
소품과 이벤트의 정의는 자신의 기분에 따라 다릅니다. 물론 자신의 의견을 알아야 합니다. [키워드는 피하세요]
model: { prop: 'someProp', // 注意,是prop,不带s。我在写这个速记的时候,多写了一个s,调试到怀疑人生 event: 'someEvent' } this.$emit('someProp', [returnValueToParent])
이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 내용에 대해서는 PHP 중국어 웹사이트의 다른 관련 기사도 주목해주세요!
추천 자료:
vue는 사용자 정의 아이콘 아이콘 단계 분석을 사용합니다. vue-cli 프로젝트는 Mockjs 단계 분석을 사용합니다.위 내용은 vue의 사용자 정의 구성 요소에서 v-model을 사용하는 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!