vue + elementUI实现换肤

new ThemeColorReplacer({

fileName: ‘style/theme-colors.[contenthash:8].css’,

matchColors: [

…forElementUI.getElementUISeries(appConfig.themeColor)

],

changeSelector: forElementUI.changeSelector,

isJsUgly: process.env.NODE_ENV === ‘production’ ? true : undefined,

injectCss: true // 解决router为history模式下改变样式后刷新页面不生效的问题

})

]

}

}

如果是cli2的话,这个文件中的plugins定义在build/webpack.base.conf.js中。

//src/utils/themeColorClient.js/

import client from ‘webpack-theme-color-replacer/client’

import forElementUI from ‘webpack-theme-color-replacer/forElementUI’

// 注意自己项目里的引入路径

import appConfig from ‘…/…/config/app-config’

export let curColor = appConfig.themeColor

// 动态切换主题色

export function changeThemeColor(newColor) {

var options = {

newColors: […forElementUI.getElementUISeries(newColor)]

}

return client.changer.changeColor(options, Promise)

.then(() => {

curColor = newColor

localStorage.setItem(‘theme_color’, curColor)

})

}

export function initThemeColor() {

const savedColor = localStorage.getItem(‘theme_color’)

if (savedColor) {

curColor = savedColor

changeThemeColor(savedColor)

}

}

//src/main.js/

import Vue from “vue”;

import App from “./App.vue”;

import router from “./router”;

import store from “./store”;

Vue.config.productionTip = false;

import ElementUI from ‘element-ui’;

Vue.use(ElementUI)

// 主题换肤

import { initThemeColor } from ‘./utils/themeColorClient’

initThemeColor();

new Vue({

router,

store,

render: h => h(App)

}).$mount(“#app”);

//src/views/Home.vue/

主要按钮

<el-color-picker

size=“medium”

@change=“changeColor”>

看我到底变不变色

看我到底变不变色

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值