在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ vue父傳子,子改變父

vue父傳子,子改變父

我有個這樣的小需求,父組件傳給子組件一個boolean值變量為true,
子組件接收到這個變量去改變值,然后子組件再把這個boolean變量值改false
傳回給父組件,這個有什么好的辦法?

parent.vue

<child :reset="reset" @value="valueHanlder"/>
<div @click="aaClick">父傳子</div>

export default {
    data() {
        return {
            reset: false,
        }
    },
    methods: {
        aaClick(){
            this.reset = true;
             //本來想在這里加個定時器的,覺得太low了  
            //setTimeout(()=>{
            //    this.reset = false
            // },300)
        },
        valueHanlder(val) {
            console.log(val);
        }
    }
}

child.vue

export default {
    props: {
        reset: {
            type: [Boolean],
            default: false,
        }
    }
    data() {
        return {
            value: 123,
        }
    },
    watch: {
        'reset': function(val){//這里監(jiān)聽父傳過來的內(nèi)容(不知道這樣方式好不好,還是說有更好的辦法)
            if(val) {
                this.value = '';
                this.$emit('value', '');
                //這里處理完以后我怎樣把外面父級的reset又變?yōu)閒alse??
            }
        }
    }
}
回答
編輯回答
舊酒館

.sync (2.3.0+) 語法糖,會擴展成一個更新父組件綁定值的 v-on 偵聽器。

父中
<MyComponent :isVisible.sync="isVisible" />

子中
handleClose() {
   this.$emit('update:isVisible', false);
}

handleClose就是你要改變isVisible的地方,更新父的isVisible

2017年2月5日 05:23