返回頂部
關閉軟件導航
位置:首頁 > 技術分享 > 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ⅴ无码专区亚洲av| 亚洲AV无码国产剧情| 亚洲av永久无码制服河南实里 | 亚洲久热无码av中文字幕| 国产亚洲精品无码专区| 亚洲av无码专区亚洲av不卡| 国产成人无码久久久精品一| 无码色偷偷亚洲国内自拍| av无码久久久久久不卡网站| 国产成人AV一区二区三区无码| 国产精品成人无码久久久久久| 亚洲av无码专区首页| 无码H黄肉动漫在线观看网站| 亚洲AV人无码激艳猛片| 国产精品va无码一区二区| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 精品无码av无码专区| 亚洲AV无码一区二区三区牲色| 日木av无码专区亚洲av毛片| 亚洲日韩激情无码一区| 日韩精品无码免费专区午夜| 亚洲精品无码日韩国产不卡?V| 国产精品免费看久久久无码 | 免费无码国产V片在线观看| 亚洲午夜无码毛片av久久京东热| 无码区国产区在线播放| 无码人妻少妇色欲AV一区二区 | 国产精品成人无码久久久久久 | 亚洲av无码一区二区三区四区 | 无码日韩人妻AV一区免费l | 亚洲综合无码一区二区| 日韩av无码中文字幕| 亚洲AV成人无码天堂| 亚洲中文字幕无码久久| 精品一区二区三区无码视频| 日韩人妻无码一区二区三区久久99 | 夜夜添无码试看一区二区三区|