Тема: Vue.js проблеми з v-model
не можу зрозуміти як надати в v-model дочірнього шаблона data з шаблона який викликає дочірній
Vue.component('question-textarea', {
props: {
'title': String,
'plch': String,
'rows': {
type: Number,
default: 1
},
'model': String
},
template:`
<div class="question">
<label>{{ title }}</label>
<div class="textarea">
<label>{{ plch }}</label>
<textarea :rows="rows" v-model="model"></textarea>
</div>
</div>
`
});
Vue.component('brief-dev', {
data: function(){
return {
form1: {
about: '',
pozytsiya: '',
meta: '',
},
form2: {
audytoriya: '',
konkurenty: '',
vpodobannya: '',
},
form3: {
optymizatsiya: '',
obraz: '',
kolor: '',
}
}
},
computed: {
isScrenn1Fullness: function(){
return (String(this.form1.about).length > 4) && (String(this.form1.pozytsiya).length > 4) && (String(this.form1.meta).length > 4)
},
isScrenn2Fullness: function(){
return (String(this.form2.audytoriya).length > 4) && (String(this.form2.konkurenty).length > 4) && (String(this.form2.vpodobannya).length > 4)
},
isScrenn3Fullness: function(){
return (String(this.form3.optymizatsiya).length > 4) && (String(this.form3.obraz).length > 4) && (String(this.form3.kolor).length > 4)
}
},
template:`
<div id="vue-fullpage">
<div class="sec-wrap">
<brief-menu></brief-menu>
</div>
<div class="sec-wrap">
<brief-first type="розробку сайту"></brief-first>
</div>
<div class="sec-wrap">
<div class="brief-sec">
<div class="content">
<form action="/">
<question-textarea
title="Коротко про себе та свою компанію"
plch="галузь бізнесу, основні послуги, сфера діяльності..."
:model="this.form1.about">
</question-textarea>
<question-textarea
title="Позиціонування продукту / компанії"
plch="основні конкурентні переваги рекламованого товару або послуги, іміджеві емоції"
:model="this.form1.pozytsiya">
</question-textarea>
<question-textarea
title="Мета створення сайту"
plch="розвиток проекту, просування конкретних послуг, продажі через інтернет..."
:model="this.form1.meta">
</question-textarea>
</form>
<div class="btn">
<button class="next-step-btn" v-bind:class="{active: isScrenn1Fullness}">Далі</button>
</div>
</div>
</div>
</div>
</div>
`
});
вдасне помилка
[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "model"
found in
---> <QuestionTextarea>
<BriefDev>
<Root>