vue3+elementPlus主题动态切换2022,亲测可用!

本文介绍了如何在Vue3项目中结合ElementPlus实现动态主题切换。首先,需要获取主题文件,然后根据主题类型使用函数加载相应的CSS变量。在实际应用中,可以适当裁剪CSS变量文件。切换主题时,通过控制CSS变量实现颜色同步更改。文章还解答了关于主题切换的一些疑问,如CSS变量的来源和基本色色阶的作用。
摘要由CSDN通过智能技术生成

环境

  • 系统: win10 64
  • node版本 v16.13.2
  • vue: ^3.2.33
  • element-plus: ^2.2.0

开始

获取主题文件

  • 文件内容太长了从示例仓库复制点击打开 或者直接拷贝仓库themes.js文件放到项目中。
    截屏2022-05-17 下午4.20.45.png
  • 当然这么多css 变量不是每个都需要改的,本文作为示例文章所以存入了全部的变量(能获取到的)。个人依实际情况进行删减保留!!!

根据主题类型使用函数进行动态切换加载css变量

  • 项目中控制主题切换的地方引入上边获取到的 themes.js(当然你的文件名字如果不是这个请根据实际情况来) 主题文件。
  • 作者放在了 src -> utils -> themes.js 目录下,所以导入路径是import themes from '@/utils/themes'

    src -> utils -> elCssVar.json 是获取的element-plus的css变量

  • 通过 switchTheme函数 来控制主题的切换
data() {
   
  return {
   
    currentSkinName: 'darkTheme',
    themeColorObj: {
   
      defaultTheme: {
   
        title: '浅色主题'
      },
      darkTheme: {
   
        title: '深色主题'
      }
    },
    themeObj: {
   }
  };
},
mounted() {
   
  this.switchTheme()
},
methods: {
   
  // 根据不同的主题类型 获取不同主题数据
  switchTheme(type) {
   
    // themes 对象包含 defaultTheme、darkTheme 两个属性即默认主题与深色主题
    this.currentSkinName = type || 'darkTheme'
    this.themeObj = themes[this.currentSkinName]
Vue3和ElementPlus是一组流行的JavaScript库,使用它们可以方便地开发Web应用,尤其是基于组件的应用。而Tabs是一种常用的UI组件,可以让用户在不同的选项卡之间切换并显示不同的内容。在Vue3和ElementPlus中,实现Tabs切换也是非常容易的。 首先,需要在Vue3和ElementPlus中引入相应的组件,并且在页面中定义Tabs的参数和选项卡的内容。例如: ``` <template> <div> <el-tabs v-model="activeTab" @tab-click="handleTabClick"> <el-tab-pane label="选项卡一">选项卡一的内容</el-tab-pane> <el-tab-pane label="选项卡二">选项卡二的内容</el-tab-pane> <el-tab-pane label="选项卡三">选项卡三的内容</el-tab-pane> </el-tabs> </div> </template> <script> import { ElTabs, ElTabPane } from 'element-plus'; import { ref } from 'vue'; export default { components: { ElTabs, ElTabPane, }, setup() { const activeTab = ref('选项卡一'); const handleTabClick = (tab) => { console.log('点击了', tab.name); }; return { activeTab, handleTabClick, }; }, }; </script> ``` 在上面的代码中,定义了一个包含三个选项卡的Tabs组件,每个选项卡都有一个label和对应的内容。activeTab是用来保存当前选中的选项卡的名称,handleTabClick是用来处理切换选项卡时触发的事件。在代码中打印了点击的选项卡的名称,以便验证切换是否成功。 为了在页面中显示Tabs组件,需要在App.vue中引入这个组件并显示出来: ``` <template> <div id="app"> <Navigation /> <router-view /> <Tabs /> </div> </template> <script> import Tabs from './components/Tabs.vue'; import Navigation from './components/Navigation.vue'; export default { components: { Tabs, Navigation, }, }; </script> ``` 在上面的代码中,引入了Tabs组件并显示出来。同时还引入了另一个自定义组件Navigation来作为页面的导航栏,router-view用来显示页面内容。这里可以根据实际需要调整组件的引入和显示方式。 最后,在页面中点击Tabs的选项卡,就可以看到控制台输出了选项卡的名称,证明切换选项卡已经成功了。这样,就可以轻松实现Vue3和ElementPlus中的Tabs切换功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值