亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

vue中直接修改props中的值并未給出警告,為啥

vue中直接修改props中的值并未給出警告,為啥

白衣染霜花 2018-08-18 15:36:13
vue官網在講解props的單向數據流時提到:額外的,每次父級組件發生更新時,子組件中所有的 prop 都將會刷新為最新的值。這意味著你不應該在一個子組件內部改變 prop。如果你這樣做了,Vue 會在瀏覽器的控制臺中發出警告。但是我測試,直接修改props的值,并未給出任何警告。大家有遇到嗎?
查看完整描述

2 回答

?
茅侃侃

TA貢獻1842條經驗 獲得超21個贊

如果props傳入的值是引用類型,在子組件中改變其元素,不改變引用,那么不報錯。
如果是普通類型,那么在修改時瀏覽器控制臺會有報錯信息

查看完整回答
反對 回復 2018-08-19
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

接著往下看

在兩種情況下,我們很容易忍不住想去修改 prop 中數據:

Prop 作為初始值傳入后,子組件想把它當作局部數據來用;

Prop 作為原始數據傳入,由子組件處理成其它數據輸出。

對這兩種情況,正確的應對方式是:

定義一個局部變量,并用 prop 的值初始化它:

props: ['initialCounter'],
data: function () {  return { counter: this.initialCounter }
}
定義一個計算屬性,處理 prop 的值并返回:

props: ['size'],
computed: {
  normalizedSize: function () {    return this.size.trim().toLowerCase()
  }
}


查看完整回答
反對 回復 2018-08-19
  • 2 回答
  • 0 關注
  • 3139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號