我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue项目如何实现切换主题色思路

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue项目如何实现切换主题色思路

Vue项目切换主题色思路

需求

用户通过取色器选择自己喜欢的颜色,替换项目中的主题色

实现效果

实现思路

在项目中使用的是less,使用@themeColor定义了主题色,便想着尝试用js修改less的变量即可,但查询了一下只知道有less.modifyVars方法可以修改,但没有详细的说明,顺便查到了可以修改js可以修改原生css的变量,而且简单易懂,便尝试使用css来定义主题色并设置修改。

首先在App.vue中设置主题色:

<style lang="less">
#app {
    --themeColor:#008cff;
}
</style>

和使用less并不冲突,使用--定义变量有自己的作用域,所以最好在根目录定义,这里我选择App.vue的#app父容器中定义。

定义好之后怎么使用呢,只需要在子组件的style中使用var(--themeColor)即可使用。

<style lang="less">
.z-header-container {
    width: 100%;
    height: 66px;
    //background: #fff;
    text-align: center;
    background: var(--themeColor);
}
</style>

接下来便是怎么让用户能够来修改这个主题色,首先想到这是一个全局的变量,在vue中管理全局变量自然是使用vuex

在store文件中定义好themeColor变量,以及修改它的方法changeThemeColor。

import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
 
const store = new Vuex.Store({
    state:{
        themeColor: "#008cff"
    },
    mutations:{
        changeThemeColor(state,val){
            state.themeColor = val;
        }
    }
})
 
export default store;

在main.js中引入store

 然后在头部组件中使用elementUI的颜色选择器,当用户修改颜色时,提交修改,修改state中的主题色

 然后在App.vue中监听state中主题色的改变。

要是改变了,也就改变对应css的主题色变量:

首先用computed计算属性得到themeColor的值,然后使用watch监听,改变的话使用.setProperty方法修改。

最终达到效果。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue项目如何实现切换主题色思路

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue项目如何实现切换主题色思路

这篇文章主要介绍了Vue项目如何实现切换主题色思路,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-13

如何在Vue中实现替换路由而不切换选项卡

随着前端技术的不断发展,Vue成为了一个非常流行的前端框架。在Vue开发过程中,路由系统是不可或缺的一个重要部分。但是,有时候我们需要在不刷新整个页面的情况下切换路由,同时还需要保持当前选项卡的状态不变。本文将介绍如何在Vue中实现替换路由而不切换选项卡。1. 什么是Vue路由系统?在Vue中,路由系统允许我们定义应用程序的路由。路由就是根据URL来确定页面内容的过程。Vue路
2023-05-14

vue如何实现点击按钮切换背景颜色的效果

不懂vue如何实现点击按钮切换背景颜色的效果?其实想解决这个问题也不难,下面让小编带着大家一起学习怎么去解决,希望大家阅读完这篇文章后大所收获。用vue简单的实现点击按钮切换背景颜色,具体代码如下所示:
2023-05-30

如何在c#项目中实现一个winform主题

如何在c#项目中实现一个winform主题?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、一个接口,需要做主题的控件、窗体都要实现这个接口/// //
2023-06-06

在Spring项目中使用 Mybatis 如何实现动态切换数据源

这篇文章将为大家详细讲解有关在Spring项目中使用 Mybatis 如何实现动态切换数据源,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。实现思路是:第一步,实现动态切换数据源:配置两个Da
2023-05-31

Xamarin XAML语言中如何构建ControlTemplate控件模板实现主题的切换功能

小编给大家分享一下Xamarin XAML语言中如何构建ControlTemplate控件模板实现主题的切换功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!(3
2023-06-04

如何解决基于Pinpoint对SpringCloud微服务项目实现全链路监控的问题

这篇文章主要为大家展示了“如何解决基于Pinpoint对SpringCloud微服务项目实现全链路监控的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决基于Pinpoint对Sprin
2023-06-29

编程热搜

目录