Vue 在sass中的主题切换方案

(一) 前言

主题切换,是目前很多产品需要定制的功能,常见的比如需要给用户提供两套主题,日间和夜间模式,那么我们需要找出一种在实际项目中使用的方案

(二) 切换方案

已知道的主题切换方案有如下几种

  1. DWZ富客户端
    实现方式:

将不同主题的样式抽取出来。
生成多份不同的主题样式文件。
动态引入。

比如

//  theme1.css
.demo {
  color: red;
}

//  theme2.css
.demo {
  color: green;
}

//  theme3.css
.demo {
  color: blue;
}

然后将3个css作为不同的css文件上传到服务器,在用户点击切换时候,link不同的css文件样式,但是弊端也很明显,需要同时维护多份主题文件,而且随着主题的扩展,将会增大维护成本

  1. 饿了么换肤功能

实现方式:

先把默认主题文件中涉及到颜色的 CSS 值替换成关键词:https://github.com/ElementUI/theme-preview/blob/master/src/app.vue#L250-L274

根据用户选择的主题色生成一系列对应的颜色值:https://github.com/ElementUI/theme-preview/blob/master/src/utils/formula.json

把关键词再换回刚刚生成的相应的颜色值:https://github.com/ElementUI/theme-preview/blob/master/src/utils/color.js

直接在页面上加 style 标签,把生成的样

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值