1、data必須是一個(gè)函數(shù),防止多個(gè)組件實(shí)例共享一份數(shù)據(jù)。雖然屬性默認(rèn)值,我們不應(yīng)該去修改它,但實(shí)際上,有些人會(huì)這么做
一個(gè)組件的?data?選項(xiàng)必須是一個(gè)函數(shù),因此每個(gè)實(shí)例可以維護(hù)一份被返回對(duì)象的獨(dú)立的拷貝
data() {
return {
? ? ????msg:"hh"m
????}
}
2、父組件引入子組件,并且有components

子組件:使用props屬性

3、props通常使用對(duì)象的寫法,有利于維護(hù)??梢宰远x校驗(yàn),默認(rèn)值

問題
問題待解決:
1、子組件為什么不能修改父組件傳遞的prop:? 主要還是一個(gè)單向數(shù)據(jù)流的問題,要保證數(shù)據(jù)的更新都是從頂層往下層流動(dòng)
2、如果修改了,Vue是如何監(jiān)控到屬性的修改并給出警告的?Object.defineProperty

標(biāo)志位
如果屬性是通過父組件修改的話,標(biāo)志位不會(huì)走到報(bào)錯(cuò)這個(gè)邏輯。但如果是子組件直接修改的話,會(huì)提示報(bào)錯(cuò)。、
3、this.$emit的返回值是this,需要返回值可以使用回調(diào)參數(shù)