vue在線動(dòng)態(tài)切換主題色方案
主要原理是利用webpack插件webpack-theme-color-replacer提取相關(guān)顏色css然后根據(jù)配置動(dòng)態(tài)生成替換的css
具體實(shí)現(xiàn)步驟如下:
1.添加webpack插件,新建文件webpack/themePlugin.js
const ThemeColorReplacer = require('webpack-theme-color-replacer')
const forElementUI = require('webpack-theme-color-replacer/forElementUI')
const config = require('../src/config/appConfig')
module.exports = new ThemeColorReplacer({
fileName: 'css/theme-colors.[contenthash:8].css',
matchColors: [
...forElementUI.getElementUISeries(config.themeColor), //element-ui主色系列
// '#0cdd3a', //自定義顏色
],
changeSelector: forElementUI.changeSelector,
isJsUgly: process.env.NODE_ENV !== 'development',
// injectCss: false,
// resolveCss(resultCss) { // optional. Resolve result css code as you wish.
// return resultCss + youCssCode
// }
})
matchColors數(shù)組中可配置多個(gè)自定義要替換的主題色
2.在vue.config.js中添加這個(gè)插件
const themePlugin=require('./webpack/themePlugin');
module.exports = {
configureWebpack: {
plugins: [
themePlugin
]
}
}
3.新建文件themeColorClient.js
import client from 'webpack-theme-color-replacer/client'
import forElementUI from 'webpack-theme-color-replacer/forElementUI'
import appConfig from '@/config/appConfig'
export let curColor = appConfig.themeColor
// 動(dòng)態(tài)切換主題色
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)
}
}
4.在需要的時(shí)候調(diào)用 initThemeColor初始化顏色 changeThemeColor改變主題顏色
import { initThemeColor,changeThemeColor } from './utils/themeColorClient'
initThemeColor()
changeThemeColor('#F56C6C')//傳入顏色格式應(yīng)該為十六進(jìn)制顏色值,'red'類似顏色暫不支持
具體細(xì)節(jié)請(qǐng)參考https://github.com/hzsrc/vue-element-ui-scaffold-webpack4
到此這篇關(guān)于vue在線動(dòng)態(tài)切換主題色方案的文章就介紹到這了,更多相關(guān)vue 動(dòng)態(tài)切換主題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue 解決在element中使用$notify在提示信息中換行問(wèn)題
這篇文章主要介紹了Vue 解決在element中使用$notify在提示信息中換行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
vuex實(shí)現(xiàn)的簡(jiǎn)單購(gòu)物車功能示例
這篇文章主要介紹了vuex實(shí)現(xiàn)的簡(jiǎn)單購(gòu)物車功能,結(jié)合實(shí)例形式分析了vuex購(gòu)物車組件相關(guān)商品列表、購(gòu)物車創(chuàng)建、添加、刪除、清空等相關(guān)操作技巧,需要的朋友可以參考下2019-02-02
Vue實(shí)現(xiàn)簡(jiǎn)單圖片切換效果
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)簡(jiǎn)單圖片切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
vue3不能使用history.pushState修改url參數(shù)踩坑
這篇文章主要為大家介紹了vue3不能使用history.pushState修改url參數(shù)踩坑解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Vue3實(shí)現(xiàn)一個(gè)可左右滑動(dòng)操作組件的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Vue3實(shí)現(xiàn)一個(gè)可左右滑動(dòng)操作組件,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Vue有一定幫助,感興趣的可以學(xué)一下2022-11-11
vuex中使用對(duì)象展開(kāi)運(yùn)算符的示例
本篇文章主要介紹了vuex中使用對(duì)象展開(kāi)運(yùn)算符的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09

