Vue修改主题的方法

实现思路

(1)通过判定 icon 图标去实现黑白的判断
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- 这是vue的伪代码 -->
<!-- 这是其他组件 -->
<template>
<div id="header">
<i :class="icon"></i>
</div>
</template>
<style lang="less" scoped>
#app {
/* 后续整体颜色都可以通过var(--themeColor)去实现 */
--themeColor: white;
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script>
export default{
data(){
return {
// dark情况下:icon:'xxx-xxx-dark'
icon:'xxx-xxx-white'
}
},
methods:{
// 这是使用busevent事件总线传值
go(){
bus.$emit('icon',this.icon)
}
}
}
</script>
(2)然后通过 busEvent.js 传值
(3)实现这些的前提:在 APP.vue 中得先 var 一个整体颜色—–实现代码如下
1
2
3
4
5
6
7
8
9
10
11
<!-- 这是vue的伪代码 -->
<template>
<div id="app"></div>
</template>

<style lang="less" scoped>
#app {
/* 后续整体颜色都可以通过var(--themeColor)去实现 */
--themeColor: white;
}
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
export default {
data() {
return {
//用于接受其他页面传来的icon
iconName: ''
}
},
methods: {
// 这是使用busevent事件总线传值
// 这里的valStore是在Vuex里面的
get() {
bus.$on('icon', val => {
this.iconName = val
switch (this.iconName) {
case 'xxx-xxx-white':
docment.querrySelector('#app').style.setProptype('--themeColor', valStore)
break
case 'xxx-xxx-dark':
docment.querrySelector('#app').style.setProptype('--themeColor', valStore)
break
}
})
}
}
}
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2022 BieGua
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信