使用场景:本来整个系统主题就是一种,用户可以根据自己的喜好去切换系统的主题,使系统界面换成另外一种风格。
如下:
思路:系统一定要是有一种默认的主题样式,当他切换主题的时候,本质上是切换了一套样式,前端这边把对应的主题存下来,然后去改变系统的主题。
问题:本质上是切换css, 具体怎么切换?
方案:
把系统中所有的组件,关于颜色的css 存起来,不同主题,对应一份样式表,然后,dom 元素的最顶端,包裹主题样式,这样就可以实现主题的变更。
遇到的问题及解决方案:
1、怎样获取用户的主题色?
解决方案:用户切换主题的时候,会发一个请求,具体的主题数据在返回数据中,之后,把整个数据存在vuex中。
2、如何在html 上动态添加样式?
解决方案:
vuex:
然后再到app.vue 中,使用setTheme这个方法,去拿到主题的色值
3、存在css中的样式,改变量就可以,存在js 中的色值如何修改
方案:把js 中的色值,以变量的形式,存在vuex 中,vuex中,对应有一个类似字典的库,存着对应的色值变量
3、ehcarts 配置,主题切换如何处理
首先是把配置项里面的关于色值的变量提取处理,传入主题色值,对应去修改
相关文章: