Über „Requisiten sollten nicht innerhalb untergeordneter Komponenten geändert werden'
仅有的幸福
仅有的幸福 2017-06-12 09:29:56
0
4
748

Offizielle Dokumentation besagt, dass Requisiten nicht innerhalb untergeordneter Komponenten geändert werden sollten

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>

Ich weiß nicht, ob ich die Requisite innerhalb der Unterkomponente so ändere? Es wurde jedenfalls kein Fehler gemeldet.
Was meinst du also mit dem Ändern von Requisiten innerhalb einer Unterkomponente?


Manche Leute sagen, dass der Wert der übergeordneten Komponente nicht geändert wird

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);
        }
    }
});

Ich werde immer verwirrter, hat sich das nicht geändert? Bitte erläutern Sie die konkreten Punkte

仅有的幸福
仅有的幸福

Antworte allen(4)
小葫芦

算是修改父组件的数据,可以用在一些不想写 $emit 的场合

官方不严格反对这种方式

迷茫

父组件里面的item并不会改变。。。改msg意义何在?
如果能再调用的情况下。。。下次调用msg还是会等于item

迷茫

某草草

只是个表象而已,原来传入的item值没有任何变化。在vue1.0中可以用dispatch进行传值去改变item的值和状态

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage