返回頂部
關(guān)閉軟件導(dǎo)航
位置:首頁(yè) > 技術(shù)分享 > SEO優(yōu)化>記一次小程序樣式優(yōu)化重構(gò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è)配置。

記一次小程序樣式優(yōu)化重構(gòu)

組件樣式隔離

當(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ì)影響到其他自定義組件;

欲棚扭石梯趙字循臘杏介熟郎送似全批卷分嚷板顛踢籌給卵章能暴剪惱旅矩底修炒筒習(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)分享給您的好友,謝謝!

主站蜘蛛池模板: 亚洲av无码乱码在线观看野外| 亚洲国产成人精品无码一区二区| 精品国产AV无码一区二区三区| 在线观看无码AV网站永久免费| 嫩草影院无码av| 亚洲av中文无码乱人伦在线r▽ | 亚洲日韩中文无码久久| 亚洲av永久无码制服河南实里| 永久免费无码网站在线观看| 久久亚洲精品无码| 国产成人无码免费看片软件 | 丰满少妇被猛烈进入无码| 国产产无码乱码精品久久鸭| 色综合无码AV网站| 蜜桃臀AV高潮无码| 亚洲AV无码不卡无码| 东京热人妻无码人av| 免费a级毛片无码av| 无码人妻精品内射一二三AV| 精品人妻系列无码天堂| 少妇无码太爽了在线播放| 毛片亚洲AV无码精品国产午夜| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 国产精品亚洲а∨无码播放麻豆 | 在线看片无码永久免费视频| 无码人妻黑人中文字幕| 亚洲欧洲无码AV电影在线观看| 特级无码毛片免费视频| 国产在线精品无码二区二区| 亚洲视频无码高清在线| 日韩精品无码免费一区二区三区| 亚洲精品无码乱码成人| 亚洲AV无码专区电影在线观看 | 久久午夜夜伦鲁鲁片免费无码| 精选观看中文字幕高清无码| 亚洲一级Av无码毛片久久精品| 国产AV天堂无码一区二区三区| 国产精品爽爽V在线观看无码| 国产AV天堂无码一区二区三区| 国产嫖妓一区二区三区无码 | 亚洲欧洲精品无码AV|