>웹 프론트엔드 >JS 튜토리얼 >사용자 정의 구성 요소에서 v-model을 활성화하기 위해 vue를 작동하는 방법

사용자 정의 구성 요소에서 v-model을 활성화하기 위해 vue를 작동하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-05-29 17:55:171743검색

이번에는 커스텀 컴포넌트에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.