第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在vue中,為什么父組件的值改變后,過幾毫秒子組件才能watch到prop的變化?附代碼

在vue中,為什么父組件的值改變后,過幾毫秒子組件才能watch到prop的變化?附代碼

呼如林 2019-02-06 19:07:07
控制臺輸出:父組件中的age值為:2子組件中的age值為:1父組件改變age值后:5毫秒,子組件才監(jiān)控到變化,變化前age:1,變化后age:2,此時子組件中的age值為:2父組件中的age值為:3子組件中的age值為:2父組件改變age值后:1毫秒,子組件才監(jiān)控到變化,變化前age:2,變化后age:3,此時子組件中的age值為:3
查看完整描述

2 回答

?
胡子哥哥

TA貢獻1825條經(jīng)驗 獲得超6個贊

只說說結果為什么是這樣子

請考慮如下同步代碼,那下面的代碼會發(fā)生什么?watch3遍嗎?不,通常來說,用戶并不更新中間變了什么值,值關心一次marcotask最后的值變成了什么樣。

this.age++this.age++this.age++

所以vue是怎么做的呢,放microtask里。scheduler.js#L176
當然如果你需要同步更新子組件也不是不可以,加上Vue.config.async = false,但這個特性很快也會被移除。Vue-config-async-移除


查看完整回答
反對 回復 2019-03-13
?
蕭十郎

TA貢獻1815條經(jīng)驗 獲得超13個贊

我理解著應該是子組件的age和父組件的age應該是同一個值,父組件值改變了,子組件瞬間改變

那你理解錯了,如果按你所說的父子組件的age指向同一個值的話,vue的子組件也不需要使用$emit()事件來跟父組件通訊了。至于vue為什么要這么做,好像教程里也有寫。

單向數(shù)據(jù)流
所有的 prop 都使得其父子 prop 之間形成了一個單向下行綁定:父級 prop 的更新會向下流動到子組件中,但是反過來則不行。這樣會防止從子組件意外改變父級組件的狀態(tài),從而導致你的應用的數(shù)據(jù)流向難以理解。

額外的,每次父級組件發(fā)生更新時,子組件中所有的 prop 都將會刷新為最新的值。這意味著你不應該在一個子組件內(nèi)部改變prop。如果你這樣做了,Vue 會在瀏覽器的控制臺中發(fā)出警告。


查看完整回答
反對 回復 2019-03-13
  • 2 回答
  • 0 關注
  • 1339 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號