我是搞APP的,但是最近APP的業(yè)務(wù)不多了,公司便讓我去搞微信小程序。。一萬個(gè)草泥馬飛過。。。
有時(shí)候我們有這一種需求:在使用組件的時(shí)候,我們希望子組件的某些樣式由父組件來控制,比如導(dǎo)航欄-navgationbar的背景,我可以使用圖片,也可以使用css指定,這樣是不是非常方便?
因?yàn)閷?dǎo)航欄默認(rèn)的太丑,所以,我自定義了導(dǎo)航欄的顯示組件。前提是隱藏了默認(rèn)的導(dǎo)航欄。
整個(gè)實(shí)現(xiàn)過程如下:
第一步:
為子組件增加:externalClasses: ['bar-background-css'],注意不是在properties里面增加 。而是平行于properties來增加。
[]里面就是你要接收父組件傳過來的class樣式。這里非常惡心的一點(diǎn):[]不能出現(xiàn)鴕峰式的命名。你把bar-background-css改為barBackgroundCss特么的就無效了,起不了作用。讀者朋友可以自行嘗試看一下效果。
第二步:
在子組件的頁面文件,即wxml文件中,對(duì)使用此樣式的dom增加class="bar-background-css",至此,整個(gè)子組件的修改或者說牽扯到的文件就已經(jīng)修改完畢。
第三步:
父頁面的調(diào)用:一定要將子組件在父頁面的json文件中注冊(cè)。注意寫法是""而不是"{{}}".
在父頁面的樣式文件即wxss文件中定義bar-bg-view樣式。
經(jīng)過以上三步,就已經(jīng)增加完畢了。現(xiàn)在我們來看看運(yùn)行效果。顏色為red。
顏色為過渡色,再看看。
至此結(jié)束。閱讀愉快。