이번에는 커스텀 컴포넌트에서 v-model을 활성화하기 위해 vue를 조작하는 방법을 보여드리고, 커스텀 컴포넌트에서 v-model을 활성화하기 위해 vue를 조작할 때 주의사항은 무엇인지 보여드리겠습니다. 다음은 실제 사례입니다. 한번 보세요 한번 보세요.
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 중국어 웹사이트의 다른 관련 기사도 주목해주세요! 추천 도서:
WebPack을 사용하여 vue 다중 페이지를 구성하는 방법
webpack을 사용하여 반응 개발 환경을 구축하는 방법
위 내용은 사용자 정의 구성 요소에서 v-model을 활성화하기 위해 vue를 작동하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!