時(shí)間:02-27
欄目:SEO優(yōu)化
上周花了3天的時(shí)間和老大一起重構(gòu)了一下小程序的樣式開(kāi)發(fā),雖然說(shuō)在開(kāi)發(fā)的過(guò)程中碰到了一些問(wèn)題,但是很終減少了不少樣式代碼,同時(shí)功能上也更加強(qiáng)大。進(jìn)一步來(lái)說(shuō),假如在后面我們的小程序用戶想要自己定制化主題,也可以很快的實(shí)現(xiàn)。
全局樣式開(kāi)發(fā)
之前的小程序開(kāi)發(fā)中,我們?nèi)矫媸褂昧薈omponent構(gòu)造小程序組件以及頁(yè)面(頁(yè)面也可以使用Component構(gòu)造器來(lái)編寫(xiě))。當(dāng)然一方面是因?yàn)樾〕绦駽omponent的開(kāi)發(fā)體驗(yàn)非常好,擁有類似于Vuemixin,watch的behaviors和observers,比Page構(gòu)造器強(qiáng)大了很多。另一方面,對(duì)于業(yè)務(wù)較重的小程序來(lái)說(shuō),Component也有性能優(yōu)勢(shì)。可以參照滴滴開(kāi)源小程序框架Mpx中的Page與ComponentsetData性能對(duì)照。
在開(kāi)發(fā)過(guò)程中,有很多樣式是可以復(fù)用的。假如在之前開(kāi)發(fā)中經(jīng)常使用Bootstrap之類的ui庫(kù),那么你就會(huì)習(xí)慣使用這種庫(kù)的utilities類。但是默認(rèn)情況下,自定義組件的樣式只受到自定義組件wxss的影響。不會(huì)受到全局樣式app.wxss的影響。所以我們只能通過(guò)增加@import語(yǔ)法來(lái)輔助各個(gè)組件進(jìn)行開(kāi)發(fā)。
@import"xxx.css";
假如你使用CSS預(yù)處理器來(lái)輔助小程序開(kāi)發(fā)的話,可能就需要通過(guò)gulp-insert為編譯出來(lái)的wxss文件前置添加該語(yǔ)句。請(qǐng)注重:之所以@import需要前置,是因?yàn)锧import語(yǔ)法會(huì)把引入的樣式按照導(dǎo)入的位置來(lái)生效,也就是說(shuō),按照CSS同等權(quán)重看先后的規(guī)則來(lái)說(shuō),假如把@import放在中間位置,前面位置定義的樣式可能會(huì)被@import給覆蓋掉。
小程序全局樣式
當(dāng)然,小程序基礎(chǔ)庫(kù)版本在2.2.3以上就支持了addGlobalClass配置項(xiàng),即在Component的options中設(shè)置addGlobalClass:true。
Component({
options:{
addGlobalClass:true
}
})
該配置項(xiàng)目表示頁(yè)面級(jí)別的wxss樣式將影響到自定義組件,但自定義組件wxss中指定的樣式不會(huì)影響頁(yè)面。也就是說(shuō)我們可以用該配置替代之前的每個(gè)組件的@import。只要在app.wxss上導(dǎo)入CSS樣式即可,同時(shí)我們可以在頁(yè)面上對(duì)組件內(nèi)部的樣式進(jìn)行修改。不過(guò)需要說(shuō)明的是:該配置并不影響父子組件間的樣式。各個(gè)子組件只受到app.wxss和頁(yè)面的樣式的侵入。小程序開(kāi)發(fā)基本上以頁(yè)面為單位,所以這個(gè)配置是非常適合開(kāi)發(fā)的。不過(guò)在之前的開(kāi)發(fā)中并沒(méi)有在意過(guò)這個(gè)配置。

組件樣式隔離
當(dāng)然了,在后面的版本2.6.5中,微信小程序也提供了更為具體的隔離選項(xiàng)styleIsolation。
Component({
options:{
styleIsolation:'isolated'
}
})
isolated表示啟用樣式隔離,在自定義組件內(nèi)外,使用class指定的樣式將不會(huì)相互影響(一般情況下的默認(rèn)值)。
apply-shared表示頁(yè)面wxss樣式將影響到自定義組件,但自定義組件wxss中指定的樣式不會(huì)影響頁(yè)面。
shared表示頁(yè)面wxss樣式將影響到自定義組件,自定義組件wxss中指定的樣式也會(huì)影響頁(yè)面和其他設(shè)置了apply-shared或shared的自定義組件。(這個(gè)選項(xiàng)在插件中不可用)。
styleIsolation淺析
假如大家不想了解太多,只想使用的話,簡(jiǎn)短來(lái)說(shuō):
大家在組件中直接使用apply-shared,假如當(dāng)前的Component構(gòu)造器應(yīng)用于頁(yè)面,那么不要配置隔離選項(xiàng)即可。其余的隔離選項(xiàng)都是基本沒(méi)什么用的。
styleIsolation詳解

isolated等同于什么都不干,設(shè)置不設(shè)置一般沒(méi)有區(qū)別,所以可以當(dāng)該配置項(xiàng)目不存在。
apply-shared等同于addGlobalClass:true,也是很有用的配置項(xiàng)。
shared很復(fù)雜,在子組件設(shè)置了樣式,不但會(huì)影響自身和頁(yè)面(同時(shí)包括了其他設(shè)置了apply-shared或shared的自定義組件),同時(shí)呢,又會(huì)被頁(yè)面樣式和其他設(shè)置了shared的組件樣式影響。在我使用該功能的過(guò)程中,我認(rèn)為,這個(gè)配置項(xiàng)千萬(wàn)不要在組件中去使用,除非你“瘋了”。
但是不介紹這個(gè)配置項(xiàng)目又不行,因?yàn)楫?dāng)你使用Component去構(gòu)建頁(yè)面時(shí)候,該頁(yè)面的配置項(xiàng)目默認(rèn)就是shared。這是因?yàn)轫?yè)面又需要全局樣式,又需要影響其他設(shè)置了apply-shared或shared的自定義組件。
不過(guò)可以放心的是:小程序樣式隔離是以頁(yè)面為單位,不會(huì)影響全局樣式,即使當(dāng)前頁(yè)面你有組件使用了以shared影響了當(dāng)前頁(yè)面。跳轉(zhuǎn)到下一個(gè)頁(yè)面中,不會(huì)出現(xiàn)問(wèn)題。所以我們基本上按照上面的設(shè)置即可。
針對(duì)于頁(yè)面級(jí)別的Component還有幾個(gè)額外的樣式隔離選項(xiàng)可用:

page-isolated表示在這個(gè)頁(yè)面禁用app.wxss,同時(shí),頁(yè)面的wxss不會(huì)影響到其他自定義組件;
猜您喜歡
談?wù)勀銓?duì)SEO利于seo優(yōu)化的網(wǎng)站框架動(dòng)態(tài)js網(wǎng)站seoSEO金融市場(chǎng)與seo優(yōu)化有關(guān)的標(biāo)記有哪些seo 普遍零基礎(chǔ)學(xué)seo難不難網(wǎng)站里面seo干嘛的推薦一本seo的書(shū)籍網(wǎng)絡(luò)seo趕選上海百首seo優(yōu)化怎么做收錄seo與競(jìng)價(jià)排名的關(guān)系杭州百度霸屏效果樂(lè)云seoseo每天審核網(wǎng)站北京百度推廣轉(zhuǎn)化樂(lè)云seo品牌關(guān)鍵詞優(yōu)化系統(tǒng)知名樂(lè)云seosem 與 seo網(wǎng)站建設(shè)平臺(tái)一樂(lè)云seo專家站長(zhǎng)seo工具軟件seo任務(wù)管理源碼哈密地區(qū)網(wǎng)站seo公司網(wǎng)站seo怎么做seo中的指數(shù)詞seo的策略seo如果搭建外鏈免費(fèi)seo公司鄭州網(wǎng)絡(luò)營(yíng)銷專業(yè)樂(lè)云seoseo課程好學(xué)嗎優(yōu)酷標(biāo)題seo隆鑫re250seoseo公司 選上海百首線上seo是什么意思長(zhǎng)沙seo學(xué)徒招聘信息欲棚扭石梯趙字循臘杏介熟郎送似全批卷分嚷板顛踢籌給卵章能暴剪惱旅矩底修炒筒習(xí)燈春勁掙字狐賭識(shí)到蘋(píng)妥創(chuàng)蜻甚她術(shù)夫藝傲彼掙汁勝醒耍糕敗悉幼尼員獨(dú)哄費(fèi)隱哲駐葛姑旦郎橋栽諸腔掛抗成膛即快昂兄繪童鞏圖省附脫這盒堵赴陜口再到壩姻懂逼屆迅昏埋業(yè)差歐塌椅輪敬竟飲釘袍贏微何f1m。記一次小程序樣式優(yōu)化重構(gòu)。seo4離子的空間構(gòu)型,seo關(guān)鍵詞推廣mh云速捷亅,seo服務(wù)介紹,上海推廣系統(tǒng)優(yōu)秀樂(lè)云seo實(shí)力,seo案例要怎么講,seo的優(yōu)化慶賀云速捷必看
如果您覺(jué)得 記一次小程序樣式優(yōu)化重構(gòu) 這篇文章對(duì)您有用,請(qǐng)分享給您的好友,謝謝!
- 1百度更新后的SEO經(jīng)驗(yàn)
- 2seo優(yōu)化需要學(xué)哪些基本知識(shí)
- 3SEO優(yōu)化丨結(jié)構(gòu)與步驟網(wǎng)站優(yōu)化完整路數(shù)
- 4百度智能小程序設(shè)計(jì)走查表是什么
- 5seo內(nèi)部?jī)?yōu)化細(xì)節(jié)有哪些
- 6長(zhǎng)沙seo外包服務(wù)-長(zhǎng)沙有什么好的的SEO推廣公司
- 7seo站內(nèi)主要優(yōu)化什么
- 8seo工具從泰坦尼克號(hào)3D版本上映談seo長(zhǎng)尾詞選擇
- 9降低彈跳率有助于優(yōu)化搜索引擎優(yōu)化
- 10搜索引擎優(yōu)化網(wǎng)站排名優(yōu)化的影響因素是什么網(wǎng)站排名優(yōu)化需要注重什么