suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Über „Requisiten sollten nicht innerhalb untergeordneter Komponenten geändert werden“

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

仅有的幸福仅有的幸福2727 Tage vor746

Antworte allen(4)Ich werde antworten

  • 高洛峰

    高洛峰2017-06-12 09:31:56

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

    官方不严格反对这种方式

    Antwort
    0
  • 迷茫

    迷茫2017-06-12 09:31:56

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

    Antwort
    0
  • 迷茫

    迷茫2017-06-12 09:31:56

    Antwort
    0
  • 某草草

    某草草2017-06-12 09:31:56

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

    Antwort
    0
  • StornierenAntwort