Vue選項(xiàng)的合并策略
1.選項(xiàng) el饺鹃、propsData 的合并策略
說(shuō)明:?el?選項(xiàng)或者?propsData?選項(xiàng)只能在使用?new?操作符創(chuàng)建實(shí)例的時(shí)候可用
引出問(wèn)題----------從策略函數(shù)中把介,可以看出窑滞,如果vm不存在萍膛,則說(shuō)明是子組件砚哆,什么原因:
vm來(lái)自mergeOptions中的第三個(gè)參數(shù)本股,而在?_init?方法中調(diào)用?mergeOptions?函數(shù)時(shí)惊来,第三個(gè)參數(shù)就是當(dāng)前?Vue?實(shí)例丽涩;
由if(!vm)語(yǔ)句,可以猜測(cè)到
2.選項(xiàng) data 的合并策略
比較復(fù)雜矢渊,總的來(lái)說(shuō)继准,被mergeOptions函數(shù)處理后,data選項(xiàng)是一個(gè)函數(shù)矮男,有3種返回的可能
相關(guān)的3點(diǎn)展開(kāi)(補(bǔ)充):
3.生命周期鉤子選項(xiàng)的合并策略
--合并成數(shù)組移必,數(shù)組元素是函數(shù)
--mixin??
4.資源(assets)選項(xiàng)的合并策略--在?Vue?中?directives、filters?以及?components?被認(rèn)為是資源,因?yàn)槿叨伎梢杂傻谌教峁?/p>
使用extend函數(shù)合并
--延伸:解釋了不用聲明毡鉴,就可以使用Vue的內(nèi)置組件
5.?選項(xiàng) watch 的合并策略
合并父子崔泵,合并結(jié)果可能是一個(gè)數(shù)組,也可能是一個(gè)函數(shù)(父選項(xiàng)中沒(méi)有?watch?選項(xiàng)猪瞬,則直接返回?childVal憎瘸,即返回的就是一個(gè)函數(shù),而非數(shù)組)
6.? 選項(xiàng) props陈瘦、methods幌甘、inject(使用?inject?選項(xiàng)來(lái)接收指定的我們想要添加在這個(gè)實(shí)例上的屬性,和provide選項(xiàng)一起使用)痊项、computed 的合并策略---使用extend函數(shù)合并锅风,返回一個(gè)對(duì)象
7.?選項(xiàng) provide(允許我們指定我們想要提供給后代組件的數(shù)據(jù)/方法) 的合并策略
--與?data?選項(xiàng)的合并策略相同,都是使用?mergeDataOrFn?函數(shù)
8. 回顧mergeOptions函數(shù)中的對(duì)于extends和mixins的處理