Vue element sass實現動態換膚

2021-10-02 01:56:20 字數 1039 閱讀 8706

本篇文章的使用場景就是在vue+element+sass的專案中實現動態換膚的需求,先宣告一下,這裡所說的換膚,是事先定義好的主題樣式,並非根據乙個colorpicker隨意拾取的顏色進行實時換膚。我這裡實現的方法比較笨,但也不失為著實可行的一套解決方案。因為實現我也在網上扒了好久,多數張冠李戴對不住需求,有的壓根兒無法實現,還有的確實可以實現,但技術難度較高。各位若一時間沒找到合適的實現方法,可以往下看看。

先說思路:要實現全專案的換膚,個人總結共分為三部分:

1.動態替換element-ui整體的主題樣式。

2.要聯動三方外掛程式更換主題,如echarts等。本文不作闡述,因為每個外掛程式換主題方式不同,咱們只需要在觸發換膚時,去操作三方外掛程式就好了。

3.聯動更換自定義的樣式顏色。這一條請參見前兩天的一篇文章:《vue+sass實現動態換膚》

本文只講第一條,如何實現替換element-ui整體樣式。以下以切換主題light、dark為例。

一、準備兩套css檔案,light-theme.css和dark-theme.css,放到資料夾style下。(這兩個檔案最好自己壓縮以下)

二、準備乙個字符集檔案(.woff),放到資料夾style/fonts下,這個檔案很重要,沒有或者與css版本不對應,將導致icon顯示為亂碼。

三、然後就在index.html檔案上面預留出乙個link標籤,待換膚事件觸發時,動態修改href的值。

export const togglethemehandle = _ =>  else 

}

是不是無腦簡單!!

要注意的是,因為這兩個檔案都是靜態由link引入的,所以最好把style放到static資料夾下,這也是要壓縮的原因。

上面操作很簡單,相信做過兩年開發的人都能想到,而本文這套實現的難點就在於去哪找一套elementui相同版本的light-theme.css、dark-theme.css、element-ui.woff。官網沒提供,網上也沒有(我是沒有找到)。。。資源包在此,自己下吧,至於從哪弄的,你細品...

主題資源包:

實變函式 實分析總結

一 概述。實變函式,又叫實分析,整本書滿滿的證明就講了乙個勒貝格積分。最為大家所熟知的是用牛頓 萊布尼茨公式算的黎曼積分。但是黎曼積分本身依賴於函式的連續性,像不連續的狄利克雷函式就無法積分了。為了解決這一問題,勒貝格利用分割值域的方法,使得函式可積。但是分割出來的值域,只能放在一起,形式集合。如果...

NestedScrollWebview實現與優化

nestedscrollwebview實現與優化 原文如下 好久沒寫了,好像也沒什麼人關注我,呵呵,但我還是堅持寫一下,希望能幫到有需要的人!今天我來說一下nestedscrollwebview。最近在弄乙個需求,我需要用到coordinatorlayout webview 實現滾動互動效果,但要實...

saltstack keepalived實現高可用

本篇部落格承接saltstack安裝部署和saltstack grains,pillar,jinja模組的使用 建立目錄。root server1 keepalived vim files keepalived.conf configuration file for keepalived globa...