返回頂部
關閉軟件導航
位置:首頁 > 技術分享 > 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的優化慶賀云速捷必看

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

主站蜘蛛池模板: 国产成人久久精品麻豆二区| 国产成人精品免费久久久久| 欧美人成人亚洲专区中文字幕| 亚洲精品成人网站在线观看 | 香蕉久久久久久AV成人| 久久亚洲AV成人无码| 成人无码免费一区二区三区| 国产成人免费一区二区三区| 亚洲精品午夜国产va久久成人| 成人综合激情另类小说| 成人欧美精品大91在线| 国产成人亚洲精品无码av大片| 亚洲最大成人网色| 日本成人免费网站| 国产成人v爽在线免播放观看| 色老头成人免费综合视频| 成人免费在线播放| 欧美成人午夜片一一在线观看| 国产成人亚洲综合欧美一部| 99久久成人国产精品免费| 免费h成人黄漫画嘿咻破解版| 成人免费网站视频| 777精品成人影院| 免费无码成人AV片在线在线播放| 国产麻豆成人传媒免费观看| 青青草成人免费| 亚洲国产成人99精品激情在线 | 国产成人久久久精品二区三区| 成人看片黄a在线观看| 久久精品成人免费观看| 国产成人无码av| 国产成人精品亚洲| 成人av鲁丝片一区二区免费| 欧美日韩国产成人综合在线| 999影院成人在线影院| 久久久久亚洲AV成人片| 亚洲AV成人无码天堂| 69国产成人精品视频软件| 欧美成人观看视频在线| 成人性生交大片免费看好| 成人网站在线进入爽爽爽|