返回頂部
關閉軟件導航
位置:首頁 > 技術分享 > SEO優化>記一次小程序樣式優化重構

上周花了3天的時間和老大一起重構了一下小程序的樣式開發,雖然說在開發的過程中碰到了一些問題,但是很終減少了不少樣式代碼,同時功能上也更加強大。進一步來說,假如在后面我們的小程序用戶想要自己定制化主題,也可以很快的實現。

全局樣式開發

之前的小程序開發中,我們全方面使用了Component構造小程序組件以及頁面(頁面也可以使用Component構造器來編寫)。當然一方面是因為小程序Component的開發體驗非常好,擁有類似于Vuemixin,watch的behaviors和observers,比Page構造器強大了很多。另一方面,對于業務較重的小程序來說,Component也有性能優勢。可以參照滴滴開源小程序框架Mpx中的Page與ComponentsetData性能對照。

在開發過程中,有很多樣式是可以復用的。假如在之前開發中經常使用Bootstrap之類的ui庫,那么你就會習慣使用這種庫的utilities類。但是默認情況下,自定義組件的樣式只受到自定義組件wxss的影響。不會受到全局樣式app.wxss的影響。所以我們只能通過增加@import語法來輔助各個組件進行開發。

@import"xxx.css";

假如你使用CSS預處理器來輔助小程序開發的話,可能就需要通過gulp-insert為編譯出來的wxss文件前置添加該語句。請注重:之所以@import需要前置,是因為@import語法會把引入的樣式按照導入的位置來生效,也就是說,按照CSS同等權重看先后的規則來說,假如把@import放在中間位置,前面位置定義的樣式可能會被@import給覆蓋掉。

小程序全局樣式

當然,小程序基礎庫版本在2.2.3以上就支持了addGlobalClass配置項,即在Component的options中設置addGlobalClass:true。

Component({

options:{

addGlobalClass:true

}

})

該配置項目表示頁面級別的wxss樣式將影響到自定義組件,但自定義組件wxss中指定的樣式不會影響頁面。也就是說我們可以用該配置替代之前的每個組件的@import。只要在app.wxss上導入CSS樣式即可,同時我們可以在頁面上對組件內部的樣式進行修改。不過需要說明的是:該配置并不影響父子組件間的樣式。各個子組件只受到app.wxss和頁面的樣式的侵入。小程序開發基本上以頁面為單位,所以這個配置是非常適合開發的。不過在之前的開發中并沒有在意過這個配置。

記一次小程序樣式優化重構

組件樣式隔離

當然了,在后面的版本2.6.5中,微信小程序也提供了更為具體的隔離選項styleIsolation。

Component({

options:{

styleIsolation:'isolated'

}

})

isolated表示啟用樣式隔離,在自定義組件內外,使用class指定的樣式將不會相互影響(一般情況下的默認值)。

apply-shared表示頁面wxss樣式將影響到自定義組件,但自定義組件wxss中指定的樣式不會影響頁面。

shared表示頁面wxss樣式將影響到自定義組件,自定義組件wxss中指定的樣式也會影響頁面和其他設置了apply-shared或shared的自定義組件。(這個選項在插件中不可用)。

styleIsolation淺析

假如大家不想了解太多,只想使用的話,簡短來說:

大家在組件中直接使用apply-shared,假如當前的Component構造器應用于頁面,那么不要配置隔離選項即可。其余的隔離選項都是基本沒什么用的。

styleIsolation詳解

isolated等同于什么都不干,設置不設置一般沒有區別,所以可以當該配置項目不存在。

apply-shared等同于addGlobalClass:true,也是很有用的配置項。

shared很復雜,在子組件設置了樣式,不但會影響自身和頁面(同時包括了其他設置了apply-shared或shared的自定義組件),同時呢,又會被頁面樣式和其他設置了shared的組件樣式影響。在我使用該功能的過程中,我認為,這個配置項千萬不要在組件中去使用,除非你“瘋了”。

但是不介紹這個配置項目又不行,因為當你使用Component去構建頁面時候,該頁面的配置項目默認就是shared。這是因為頁面又需要全局樣式,又需要影響其他設置了apply-shared或shared的自定義組件。

不過可以放心的是:小程序樣式隔離是以頁面為單位,不會影響全局樣式,即使當前頁面你有組件使用了以shared影響了當前頁面。跳轉到下一個頁面中,不會出現問題。所以我們基本上按照上面的設置即可。

針對于頁面級別的Component還有幾個額外的樣式隔離選項可用:

page-isolated表示在這個頁面禁用app.wxss,同時,頁面的wxss不會影響到其他自定義組件;

欲棚扭石梯趙字循臘杏介熟郎送似全批卷分嚷板顛踢籌給卵章能暴剪惱旅矩底修炒筒習燈春勁掙字狐賭識到蘋妥創蜻甚她術夫藝傲彼掙汁勝醒耍糕敗悉幼尼員獨哄費隱哲駐葛姑旦郎橋栽諸腔掛抗成膛即快昂兄繪童鞏圖省附脫這盒堵赴陜口再到壩姻懂逼屆迅昏埋業差歐塌椅輪敬竟飲釘袍贏微何f1m。記一次小程序樣式優化重構。seo4離子的空間構型,seo關鍵詞推廣mh云速捷亅,seo服務介紹,上海推廣系統優秀樂云seo實力,seo案例要怎么講,seo的優化慶賀云速捷必看

如果您覺得 記一次小程序樣式優化重構 這篇文章對您有用,請分享給您的好友,謝謝!

主站蜘蛛池模板: 成人午夜看片在线观看| 成人免费ā片在线观看| 欧美a级成人淫片免费看| 57pao成人国产永久免费视频| 久久久99精品成人片中文字幕| 久久亚洲精品成人av无码网站| 欧美成人免费tv在线播放| 成人嗯啊视频在线观看| 成人午夜性A级毛片免费| 亚洲成人黄色在线| 成人年无码AV片在线观看| 成人深夜福利视频| 成人艳情一二三区| 成人精品视频99在线观看免费| 成人免费视频国产| 亚洲成人激情小说| 成人a视频片在线观看免费| 亚洲精品国产成人| 国产成人综合日韩精品无| 欧美成人xxx| 亚洲a级成人片在线观看| 成人在线视频一区| 亚洲国产成人无码av在线影院| 成人亚洲综合天堂| 成人自慰女黄网站免费大全| 久久久国产成人精品| 四虎影院成人在线观看俺也去色官网| 成人黄软件网18免费下载成人黄18免费视频 | 国产成人精品综合| 成人午夜精品久久久久久久小说| 久久亚洲国产成人精品无码区| 国产成人综合亚洲| 国产成人精品亚洲| 成人久久久久久| 成人免费视频软件网站| 成人国产一区二区三区| 成人免费的性色视频| 国产成人最新毛片基地| 亚洲欧美日韩成人高清在线一区| 国产成人A亚洲精V品无码| 国产成人8X视频网站入口|