鍍金池/ 問答/網(wǎng)絡安全  HTML/ 點擊父組件按鈕,動態(tài)向子組件模態(tài)框傳值,程序中大量使用watch是否會影響程序性

點擊父組件按鈕,動態(tài)向子組件模態(tài)框傳值,程序中大量使用watch是否會影響程序性能?或者有其它的辦法替代watch?

問題描述

大致意思:表格是父組件,模態(tài)框是子組件,點擊父組件表格的操作按鈕,需要把當前點擊的這一條數(shù)據(jù)傳給模態(tài)框顯示,使用了props傳值,因為子組件的data只初始化了一次props的值,當點擊父組件按鈕的時候,props的值并沒有動態(tài)的更新到子組件data上,使用了watch解決,因為程序中已經(jīng)使用了大量的watch,wacth過多是否會影響程序性能,請問還有沒有更好的解決辦法

問題出現(xiàn)的環(huán)境背景及自己嘗試過哪些方法

相關代碼

// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)

// 父組件傳值

"a", {
    style: {
        marginRight: "8px"
    },
    on: {
    click: () => {
        this.modalShow = true;            // 點擊按鈕 模態(tài)框打開 true
        this.instanceInfo = params.row;  // 點擊按鈕動態(tài)傳給子組件模態(tài)框的值
        }
    }
},
"續(xù)費"

// 子組件接收

// modalShow 為true或者false  判斷模態(tài)框是否打開了
// instanceInfo是我需要的動態(tài)的值
props: ['modalShow', 'instanceInfo'],
data() {
    return {
        xuFeiTableData: []   // 接收父組件動態(tài)傳過來的值instanceInfo
    };
},
watch: {
    // 監(jiān)聽模態(tài)框是否打開了 打開了則把props傳過來的當前實例屬性的值給xuFeiTableData
    modalShow: function (newValue, oldValue){
        this.xuFeiTableData = [];
        if(newValue == true){
            this.xuFeiTableData.push(this.instanceInfo);  
        }
    }
}


你期待的結(jié)果是什么?實際看到的錯誤信息又是什么?

更好的解決子組件 動態(tài)取到父組件的值?

回答
編輯回答
女流氓

因為子組件的data只初始化了一次props的值 ? porps 本身就是動態(tài)更新的

綁定動態(tài) Props 到父組件的數(shù)據(jù)。每當父組件的數(shù)據(jù)變化時,也會傳導給子組件:
2018年8月13日 16:47