环境
- 系统:
win10 64
- node版本
v16.13.2
- vue:
^3.2.33
- element-plus:
^2.2.0
开始
获取主题文件
- 文件内容太长了从示例仓库复制点击打开 或者直接拷贝仓库
themes.js
文件放到项目中。
- 当然这么多css 变量不是每个都需要改的,本文作为示例文章所以存入了全部的变量(能获取到的)。个人依实际情况进行删减保留!!!
根据主题类型使用函数进行动态切换加载css变量
- 项目中控制主题切换的地方引入上边获取到的
themes.js
(当然你的文件名字如果不是这个请根据实际情况来) 主题文件。
- 作者放在了
src -> utils -> themes.js
目录下,所以导入路径是import themes from '@/utils/themes'
。
src -> utils -> elCssVar.json
是获取的element-plus的css变量
- 通过
switchTheme函数
来控制主题的切换
data() {
return {
currentSkinName: 'darkTheme',
themeColorObj: {
defaultTheme: {
title: '浅色主题'
},
darkTheme: {
title: '深色主题'
}
},
themeObj: {
}
};
},
mounted() {
this.switchTheme()
},
methods: {
switchTheme(type) {
this.currentSkinName = type || 'darkTheme'
this.themeObj = themes[this.currentSkinName]