在vue中使用Element UI实现切换主题功能,并给出具体代码
时间: 2023-04-09 21:04:03 浏览: 128
以下是实现切换主题功能的代码示例:
1. 在 main.js 中引入 Element UI 和样式文件:
```
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)
```
2. 在 App.vue 中添加切换主题的按钮:
```
<template>
<div>
<el-button @click="changeTheme">切换主题</el-button>
<!-- 其他组件 -->
</div>
</template>
<script>
export default {
methods: {
changeTheme() {
const theme = this.$store.state.theme === 'light' ? 'dark' : 'light'
this.$store.commit('setTheme', theme)
this.$message.success(`主题已切换为${theme}`)
}
}
}
</script>
```
3. 在 store.js 中添加 theme 状态和 setTheme 方法:
```
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
theme: 'light'
},
mutations: {
setTheme(state, theme) {
state.theme = theme
document.documentElement.setAttribute('data-theme', theme)
}
}
})
```
4. 在 index.html 中添加 data-theme 属性:
```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>My App</title>
<style>
:root {
--primary-color: #409EFF;
--success-color: #67C23A;
--warning-color: #E6A23C;
--danger-color: #F56C6C;
}
[data-theme="dark"] {
--primary-color: #303133;
--success-color: #4D5156;
--warning-color: #E6A23C;
--danger-color: #F56C6C;
}
</style>
</head>
<body>
<div id="app"></div>
</body>
</html>
```
以上代码实现了在 Vue 中使用 Element UI 实现切换主题功能。
阅读全文