官方文件說不應該在子元件內部改變prop
Vue.component('todo-list',{
props:['msg'],
template:'<li>{{msg.text}}<button @click="fun">click</button></li>',
methods:{
fun:function(){
alert(this.msg.text='芒果');
}
}
});
new Vue({
el:'#app',
data:{
grocery:[
{text:'苹果'},
{text:'香蕉'},
{text:'菠萝'}
]
}
});
<p id="app">
<ol>
<todo-list v-for="(item,index) in grocery" key="index" :msg="item"></todo-list>
</ol>
</p>
我不知道我這樣算在子元件內部改變prop嗎?反正是沒有報錯。
那咋樣才叫在子組件內部改變prop呢?
有人說並沒有改變父元件的值
Vue.component('todo-list',{
props:['msg'],
template:'<li @click="funn">{{msg.text}}<button @click.stop="fun">click</button></li>',
methods:{
fun:function(){
alert(this.msg.text='芒果');
},
funn:function(n){
alert(this.msg.text);
}
}
});
我越來越懵了,難道不是已經改變了嗎?請解釋的具體點