vue3+ts 学习笔记(2-8)项目主题色切换实现方案
主题色切换主要目的是,提供不同色彩风格,最初目的为实现保护眼睛,通过色彩的变化,减少对眼睛的伤害,由mac和vs code为代表 具体实现可参考当前项目内的src/store/modules/theme-store.ts与src/assets/css/theme-variables.scss文件git 仓库地址:https://gitee.com/xiaoli-account/vue3_ts.git
## 主题色彩css的统一规范
- 将会使用到的主题风格颜色,进行统一提取管理,统一使用
- 集成element plus的主题切换功能,在使用组件库样式时,也可以满足主题切换element plus 主题文档
## 使用store实现主题切换,页面样式覆盖
- 使用store为了全局缓存当前主题色,便于页面初始化时的主题选择
- 通过原生js方法替换页面内使用到的变量,色值,如下:
- const root = document.documentElement; root.style.setProperty("--theme-primary", theme.primary); root.setAttribute("data-theme", mode);
- 关于element plus的主题色集成,可通过js的增加/移除样式类,来实现。如:root.classList.add("dark");root.classList.remove("dark");
## 为切换主题触发点,提供切换函数,实现切换
- 通过引入store内的主题切换函数,实现主题切换触发
- 切换的原理为,实现初始化主题函数,当handleThemeToggle切换时获取缓存的主题key,然后初始化主题,以实现以上功能
- 当前项目主题切换触发点为src/views/login/index.vue页面,如有兴趣可详细查看。