返回頂部
關閉軟件導航
位置:首頁 > 技術分享 > 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高潮无码| 久久国产精品成人无码网站| 国产乱人伦无无码视频试看| 久久老子午夜精品无码| 成人免费a级毛片无码网站入口| 国产aⅴ无码专区亚洲av麻豆| 亚洲AV无码乱码在线观看代蜜桃 | 亚洲中文字幕无码av在线| 亚洲一级特黄无码片| 伊人久久精品无码麻豆一区| 国产AV无码专区亚洲AV漫画| 粉嫩大学生无套内射无码卡视频| 人妻少妇乱子伦无码专区| 亚洲精品无码你懂的| 亚洲日韩精品无码专区网址| 特黄熟妇丰满人妻无码| 永久免费AV无码国产网站| 午夜无码国产理论在线| 自拍偷在线精品自拍偷无码专区| 18禁成年无码免费网站无遮挡| 精品无码久久久久国产| 亚洲AV无码专区国产乱码4SE| 无码专区6080yy国产电影| 精品久久久久久无码中文野结衣 | 一本色道久久综合无码人妻| 久久精品无码一区二区三区| 伊人蕉久中文字幕无码专区| 成人免费无码精品国产电影| 67194成是人免费无码| 久久人妻无码一区二区| 无码av大香线蕉伊人久久| 国产成人无码免费视频97| 无码粉嫩虎白一线天在线观看| 日本无码WWW在线视频观看| 97久久精品无码一区二区| 伊人久久精品无码麻豆一区| 久久精品无码一区二区三区不卡| 免费a级毛片无码a∨蜜芽试看 | 亚洲Av无码国产情品久久|