最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue項(xiàng)目如何實(shí)現(xiàn)切換主題色思路

 更新時(shí)間:2023年01月13日 14:15:48   作者:zongmaomx  
這篇文章主要介紹了Vue項(xiàng)目如何實(shí)現(xiàn)切換主題色思路,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Vue項(xiàng)目切換主題色思路

需求

用戶通過取色器選擇自己喜歡的顏色,替換項(xiàng)目中的主題色

實(shí)現(xiàn)效果

實(shí)現(xiàn)思路

在項(xiàng)目中使用的是less,使用@themeColor定義了主題色,便想著嘗試用js修改less的變量即可,但查詢了一下只知道有l(wèi)ess.modifyVars方法可以修改,但沒有詳細(xì)的說明,順便查到了可以修改js可以修改原生css的變量,而且簡單易懂,便嘗試使用css來定義主題色并設(shè)置修改。

首先在App.vue中設(shè)置主題色:

<style lang="less">
#app {
    --themeColor:#008cff;
}
</style>

和使用less并不沖突,使用--定義變量有自己的作用域,所以最好在根目錄定義,這里我選擇App.vue的#app父容器中定義。

定義好之后怎么使用呢,只需要在子組件的style中使用var(--themeColor)即可使用。

<style lang="less">
.z-header-container {
    width: 100%;
    height: 66px;
    //background: #fff;
    text-align: center;
    background: var(--themeColor);
}
</style>

接下來便是怎么讓用戶能夠來修改這個(gè)主題色,首先想到這是一個(gè)全局的變量,在vue中管理全局變量自然是使用vuex

在store文件中定義好themeColor變量,以及修改它的方法changeThemeColor。

import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
 
const store = new Vuex.Store({
    state:{
        themeColor: "#008cff"
    },
    mutations:{
        changeThemeColor(state,val){
            state.themeColor = val;
        }
    }
})
 
export default store;

在main.js中引入store

 然后在頭部組件中使用elementUI的顏色選擇器,當(dāng)用戶修改顏色時(shí),提交修改,修改state中的主題色

 然后在App.vue中監(jiān)聽state中主題色的改變。

要是改變了,也就改變對應(yīng)css的主題色變量:

首先用computed計(jì)算屬性得到themeColor的值,然后使用watch監(jiān)聽,改變的話使用.setProperty方法修改。

最終達(dá)到效果。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

云霄县| 侯马市| 平果县| 丰台区| 视频| 徐汇区| 同心县| 灵寿县| 塘沽区| 丽江市| 尼勒克县| 长丰县| 施秉县| 浏阳市| 罗源县| 高台县| 南川市| 临夏市| 凉山| 襄城县| 岚皋县| 定南县| 商城县| 久治县| 绥芬河市| 兴文县| 娄底市| 两当县| 韩城市| 揭阳市| 青海省| 五台县| 大化| 双鸭山市| 大邑县| 深泽县| 湖南省| 和平县| 巩留县| 廉江市| 阳春市|