vue+iview+less 實現換膚功能

項目搭建用的vue—cli,css框架選擇的iview
一、首先安裝less支持javascript

npm install --save-dev less-loader less

而後去build文件夾下的webpack.base.conf.js文件中,添加對.less的支持
圖片描述css

二、準備工做作好了,開始換膚vue

2.1新建一個文件夾styles,在裏面新建一個文件theme.less 
定義一個.theme()方法,寫上須要的顏色參數如圖:

圖片描述

2.2 styles文件夾下再新建一個存放各種主題的color.less文件,裏面根據本身需求定義各種主題,記得把theme.less文件引入java

@import url('./theme.less');
    .theme1{
        .theme();//默認的樣式
    }
    .theme2{
        .theme(rgb(141, 139, 219),#fff,#eee,rgb(130, 126, 240));
    }
    .theme3{
        .theme(rgb(172, 214, 200),#615f5f,#fff,rgb(91, 139, 123));
    }

2.3 在main.js中引入color.less文件webpack

import './styles/color.less'

2.4 在進行主題選擇的.vue文件中,進行以下操做web

<Dropdown>
        <a href="javascript:void(0)">
            下拉菜單
            <Icon type="arrow-down-b"></Icon>
        </a>
        <DropdownMenu slot="list">
            <DropdownItem @click.native="changeColor(1)">搖滾主題</DropdownItem>
            <DropdownItem @click.native="changeColor(2)">新時代主題</DropdownItem>
            <DropdownItem @click.native="changeColor(3)">基礎主題</DropdownItem>
        </DropdownMenu>
    </Dropdown>
    
     //更換主題
      changeColor(num){
        //把className theme1,theme2,theme3掛載在app.vue的<div id="app"></div>上
        document.getElementById('app').className ='theme'+num ;
        this.localStorageDate()
      },
     //存儲localStoarge,用於進入系統時,記住用戶上一次的選擇,自動加載用戶上一次選擇的主題主題,記得在mounted()裏面調用
      localStorageDate(){
        localStorage.setItem('app',document.getElementById('app').className)
      }
相關文章
相關標籤/搜索