鍍金池/ 問答/HTML/ vue怎么強(qiáng)制刷新DOM

vue怎么強(qiáng)制刷新DOM

點(diǎn)擊頁(yè)面的按鈕,操作樹形表格的全部展開,但是現(xiàn)在是傳過去的數(shù)據(jù)被改變了,但是dom沒有改變,但是手動(dòng)刷新的時(shí)候,又可以改變的,想求一個(gè)刷新自動(dòng)刷新DOM的方法,或者別的解決方案

data(){
    return {
            treeAll:false,
        }
}
methods:{
    //    點(diǎn)擊按鈕展開所有的樹形節(jié)點(diǎn)
    treeAllData(){
        this.treeAll=true
    }
}
回答
編輯回答
扯機(jī)薄
  1. 傳過去的數(shù)據(jù)被改變了這個(gè)是從哪里觀測(cè)到的。
  2. 開發(fā)模式,看devtools中子組件內(nèi)的props對(duì)應(yīng)的值是否隨著你的操作自動(dòng)更新了,沒有的話說明的確沒有被vue監(jiān)測(cè)到,那可能就是哪里做了不必要的操作。

你示例里的代碼不該發(fā)生這種問題。

2018年1月7日 20:54
編輯回答
她愚我

vue上一般不推薦使用強(qiáng)制刷新,問題應(yīng)該出在你其中哪個(gè)地方的傳值或者異步上,你可以代碼貼全一點(diǎn)再進(jìn)行分析?

2017年11月10日 10:18
編輯回答
殘淚

vue應(yīng)該不需要強(qiáng)制刷新,數(shù)據(jù)是自動(dòng)更新到dom中的,估計(jì)你傳值有問題吧

2017年9月28日 18:23
編輯回答
執(zhí)念

你是通過路由傳的值?

2017年12月14日 01:25
編輯回答
悶油瓶

你這個(gè)值是自己組件改變還是其他組件傳過來的

2018年7月16日 07:10
編輯回答
孤島

如果treeAll的值改變的話DOM不應(yīng)該不會(huì)變,建議你把treeAll打印在頁(yè)面上看看點(diǎn)擊按鈕時(shí)有沒有變化

2018年1月10日 18:27
編輯回答
爛人

思路,先銷毀dom再重新創(chuàng)建:

    <div v-if="!inResize">

......

    </div>

js:

                this.inResize = true;
                Vue.nextTick(t => {
                    this.inResize = false;
                })
2017年1月28日 12:06