vue 視圖不更新

$nextTick


image.png
<template>
  <section>
    <h1 ref="hello">{{ value }}</h1>
    <el-button type="danger" @click="get">點擊</el-button>
  </section>
</template>
<script>
  export default {
    data() {
      return {
        value: 'Hello World ~'
      };
    },
    methods: {
      get() {
        this.value = '你好啊';
        console.log(this.$refs['hello'].innerText);
        this.$nextTick(() => {
          console.log(this.$refs['hello'].innerText);
        });
      }
    },
    mounted() {
    },
    created() {
    }
  }
</script>
image.png

根據(jù)上面的例子可以看出译红,在方法里直接打印的話, 由于dom元素還沒有更新兴溜, 因此打印出來的還是未改變之前的值侦厚,而通過this.$nextTick()獲取到的值為dom更新之后的值

this.$set的用法

data中數(shù)據(jù),都是響應式拙徽。也就是說刨沦,如果操作data中的數(shù)據(jù),視圖會實時更新膘怕;

但在實際開發(fā)中想诅,遇到過一個坑:若data中數(shù)據(jù)類型較為復雜,方法methods中改變對象的屬性岛心,視圖也就是頁面并不會改變

原因是vue監(jiān)聽不到數(shù)據(jù)類型特別復雜的屬性来破。

可以使用this.$set()來進行強制更新,進而解決問題

對象操作:

三個參數(shù):this.$set("改變的對象"鹉梨,"改變的對象屬性"讳癌,"值")

數(shù)組操作:

三個參數(shù):this.$set("數(shù)組","下標"存皂,"值")

<template>
<div id="app2">
<p v-for="item in items" :key="item.id">{{item.message}}</p>
<button class="btn" @click="handClick()">更改數(shù)據(jù)</button> 
</div>
</template>

<script>
export default {
data() {
return {
items: [
{ message: "one", id: "1" },
{ message: "two", id: "2" },
{ message: "three", id: "3" }
]
};
},
mounted(){
this.items[0]={message:"測試",id:"4"}; //此時對象的值更改了晌坤,但是視圖沒有更新
this.$set(this.items,0,{message:"測試",id:"4"}); //$set可以觸發(fā)更新視圖
console.log(this.items)
},
methods: {
// 調用方法:Vue.set( target, key, value )

// target:要更改的數(shù)據(jù)源(可以是對象或者數(shù)組)

// key:要更改的具體數(shù)據(jù)

// value :重新賦的值
handClick() {
//Vue methods中的this 指向的是Vue的實例旦袋,這里可以直接在this中找到items
this.$set(this.items, 0, { message: "更改one的值", id: "0" });
},
}
};
</script>

<style>
</style>

參考:http://www.reibang.com/p/5fe073e36baf
參考:http://www.mamicode.com/info-detail-3063951.html
參考:https://www.cnblogs.com/lanshu123/p/11636377.html

監(jiān)聽參考:https://www.cnblogs.com/yesu/p/9546458.html

vue多層循環(huán)骤菠,動態(tài)改變數(shù)據(jù)后渲染的很慢或者不渲染
可在動態(tài)改變數(shù)據(jù)的方法,第一行加上

this.$forceUpdate();

在使用Vue框架開發(fā)時疤孕,在函數(shù)中改變了頁面中的某個值商乎,在函數(shù)中查看是修改成功了,但在頁面中沒有及時刷新改變后的值祭阀,我是在使用多層v-for嵌套時出現(xiàn)這種問題的鹉戚,

解決方法:運用 this.$forceUpdate()強制刷新

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市专控,隨后出現(xiàn)的幾起案子抹凳,更是在濱河造成了極大的恐慌,老刑警劉巖伦腐,帶你破解...
    沈念sama閱讀 212,686評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赢底,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機幸冻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評論 3 385
  • 文/潘曉璐 我一進店門粹庞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人洽损,你說我怎么就攤上這事庞溜。” “怎么了趁啸?”我有些...
    開封第一講書人閱讀 158,160評論 0 348
  • 文/不壞的土叔 我叫張陵强缘,是天一觀的道長。 經(jīng)常有香客問我不傅,道長旅掂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,736評論 1 284
  • 正文 為了忘掉前任访娶,我火速辦了婚禮商虐,結果婚禮上,老公的妹妹穿的比我還像新娘崖疤。我一直安慰自己秘车,他們只是感情好,可當我...
    茶點故事閱讀 65,847評論 6 386
  • 文/花漫 我一把揭開白布劫哼。 她就那樣靜靜地躺著叮趴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪权烧。 梳的紋絲不亂的頭發(fā)上眯亦,一...
    開封第一講書人閱讀 50,043評論 1 291
  • 那天,我揣著相機與錄音般码,去河邊找鬼妻率。 笑死,一個胖子當著我的面吹牛板祝,可吹牛的內容都是我干的宫静。 我是一名探鬼主播,決...
    沈念sama閱讀 39,129評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼券时,長吁一口氣:“原來是場噩夢啊……” “哼孤里!你這毒婦竟也來了?” 一聲冷哼從身側響起橘洞,我...
    開封第一講書人閱讀 37,872評論 0 268
  • 序言:老撾萬榮一對情侶失蹤捌袜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后震檩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體琢蛤,經(jīng)...
    沈念sama閱讀 44,318評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,645評論 2 327
  • 正文 我和宋清朗相戀三年抛虏,在試婚紗的時候發(fā)現(xiàn)自己被綠了博其。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,777評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡迂猴,死狀恐怖慕淡,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情沸毁,我是刑警寧澤峰髓,帶...
    沈念sama閱讀 34,470評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站息尺,受9級特大地震影響携兵,放射性物質發(fā)生泄漏。R本人自食惡果不足惜搂誉,卻給世界環(huán)境...
    茶點故事閱讀 40,126評論 3 317
  • 文/蒙蒙 一徐紧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧炭懊,春花似錦并级、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至父阻,卻和暖如春愈涩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背至非。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評論 1 267
  • 我被黑心中介騙來泰國打工钠署, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人荒椭。 一個月前我還...
    沈念sama閱讀 46,589評論 2 362
  • 正文 我出身青樓谐鼎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親趣惠。 傳聞我的和親對象是個殘疾皇子狸棍,可洞房花燭夜當晚...
    茶點故事閱讀 43,687評論 2 351