# Vue 实现切换主题操作
> 参考地址:https://blog.csdn.net/youlinaixu/article/details/83447527
## 安装vue-cli
``` bash
npm install -g vue-cli
vue init webpack vue_demo
cd vue_demo
npm install
npm run dev
```
## 安装element-ui及sass
由于Element的theme-chalk使用sass编写,所以需要安装sass
```
npm i element-ui -S
npm install --save-dev sass-loader
npm install --save-dev node-sass
```
## 在build 文件夹下的 webpack.base.conf.js的 ‘rules’里面添加配置
```
{
test: /\.sass$/,
loaders: ['style', 'css', 'sass']
}
```
## 安装elementui的自定义主题工具
```
npm i element-theme -g
npm i element-theme-chalk -D
```
## 初始化主题变量文件
```
et -i element-variables.scss
```
初始化以后目录中产生 ** element-variables.scss ** 文件
更改** --color-primary ** 的值, 然后命令行输入et 编译主题文件,生成的 `theme` 文件。
## 使用gulp-css-wrap
```
npm install gulp
npm install gulp-clean-css
npm install gulp-css-wrap
```
## 在项目根目录下创建一个名为 gulpfile.js 的文件
```
// gulpfile.js
var path = require('path')
var gulp = require('gulp')
var cleanCSS = require('gulp-clean-css')
var cssWrap = require('gulp-css-wrap')
gulp.task('css-wrap', function () {
return gulp.src(path.resolve('./theme/index.css'))
/* 找需要添加命名空间的css文件,支持正则表达式 */
.pipe(cssWrap({
selector: '.custom-02abfd' /* 添加的命名空间 */
}))
.pipe(cleanCSS())
.pipe(gulp.dest('src/assets/css/theme/02abfd')) /* 存放的目录 */
})
```
## 执行gulp输出
```
gulp css-wrap
```
注意:这里会报错```gulp: command not found``` 解决办法:
```
npm config set prefix /usr/local // 重设路径
npm install -g gulp
```
注意:再次执行```gulp css-wrap``` 以后只有index 文件,font文件直接从刚刚的theme文件中复制过来。
## 建立store文件存储主题状态
```
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
state:{
themecolor:'20a0ff'//默认为20a0ff
},
mutations:{
//更新主题颜色
setThemeColor(state,curcolor){
this.state.themecolor = curcolor;
}
}
});
export default store;
```
## 在main.js入口文件中引用
```
import store from '@/store/index.js'
import './assets/css/theme/02abfd/index.css'
new Vue({
el: '#app',
store
……
})
```
注意:这里会由于Vue和Vuex版本不对应导致警告,解决办法:
> 参考:https://blog.csdn.net/weixin_51190886/article/details/122917594
```
// 卸载vuex
npm uninstall vuex
// 安装vuex3
npm install vuex@3
```
没有合适的资源?快使用搜索试试~ 我知道了~
Vue主题切换源代码 vue-topic-switching
共35个文件
js:20个
vue:4个
json:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 175 浏览量
2022-03-06
03:45:04
上传
评论
收藏 173KB ZIP 举报
温馨提示
Vue 主题切换
资源推荐
资源详情
资源评论
收起资源包目录
vue-topic-switching-master.zip (35个子文件)
vue-topic-switching-master
.gitignore 176B
.babelrc 230B
.postcssrc.js 246B
package.json 2KB
package-lock.json 596KB
src
mock
index.js 111B
base.js 511B
main.js 647B
error.js 390B
assets
util
index.js 156B
logo.png 7KB
commons
CreateForm.vue 399B
App.vue 140B
router
index.js 368B
store
index.js 335B
pages
Navigation
Navigation.vue 1KB
ThemeSwitch
TemeSwitch.vue 970B
gulpfile.js 487B
build
check-versions.js 1KB
build.js 1KB
utils.js 3KB
webpack.base.conf.js 2KB
logo.png 7KB
webpack.dev.conf.js 3KB
webpack.prod.conf.js 5KB
vue-loader.conf.js 553B
.eslintrc.js 791B
README.md 3KB
config
dev.env.js 156B
index.js 2KB
prod.env.js 61B
.eslintignore 30B
index.html 270B
element-variables.scss 36KB
.editorconfig 147B
共 35 条
- 1
资源评论
清风细雨_林木木
- 粉丝: 1w+
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功