반응형
소품을 사용하여 v-model을 초기화하시겠습니까?
v-model을 사용하는 Vue 구성 요소를 생성하려고 합니다.v-model의 초기 값은 결국 상위 구성 요소 또는 데이터스토어에서 가져옵니다.작업을 시작하려는 첫 번째 단계는 속성을 사용하여 v-model을 초기화하는 것입니다.다음을 시도했지만 성공하지 못했습니다.
<template>
<div>
<textarea
v-model="text"
></textarea>
</div>
</template>
<script>
export default {
props: { initialValue: String },
data() {
return {
text: this.props ? this.props.initialValue : 'This is a test'
}
}
}
</script>
그리고 부모로부터 다음과 같이 사용합니다.
<MyComponent initialValue="Hello World" />
컴포넌트에 Hello World가 아닌 This is test로 표시됩니다.v-model을 사용하는 구성 요소를 초기화하는 적절한 방법은 무엇입니까?
편집
일단 v-model을 포기하고 이 방법을 생각해 냈습니다.'Vue-ly' 느낌이 안 들어요.기본적으로 텍스트 영역의 구현 세부사항(eve.srcElement.value.length)을 탭하고 있습니다.도메인 개체를 탭해야 할 것 같습니다.더 좋은 방법은 없을까?textChange 이벤트에서는 다른 컴포넌트에 대한 알림이 발송됩니다.
<template>
<div>
<textarea
:value="initialValue"
@change="textChange"
@keyup="textChange"
placeholder="Type your text here"
></textarea>
</div>
</template>
<script>
export default {
props: { initialValue: String },
methods: {
textChange: function(evt) {
console.log('Length: ' + evt.srcElement.value.length)
}
}
}
</script>
v-model
를 활용하다value
소품. 당신은 그 소품들을 방출해야 합니다.input
event를 클릭하여 부모 값을 업데이트합니다.
마이 컴포넌트표시하다
<template>
<div>
<textarea :value="value" @input="$emit('input', $event.target.value)"></textarea>
</div>
</template>
<script>
export default {
props: ['value']
}
</script>
Parent.vue
<MyComponent v-model="val"/>
자세한 내용은 구성 요소에서 v-model 사용을 참조하십시오.
언급URL : https://stackoverflow.com/questions/53694707/initialize-v-model-using-props
반응형
'programing' 카테고리의 다른 글
실제 SQL 표시 최대 절전 모드 (0) | 2022.08.17 |
---|---|
C 프로그래밍: 다른 함수의 malloc() (0) | 2022.08.17 |
C 또는 C++ 표준에서는 char를 부호 있는 문자 또는 부호 없는 문자로 명시적으로 정의하지 않는 이유는 무엇입니까? (0) | 2022.08.17 |
vuex: 상태 필드 "foo"가 "foo"에서 이름이 같은 모듈에 의해 재정의되었습니다. (0) | 2022.08.16 |
vue 컴포넌트와 앱에서 el과 template의 차이점은 무엇입니까? (0) | 2022.08.16 |