element-ui引入方式、自定義主題

1. element-ui組件引入方式:

1)完整引入

在 main.js 中寫入以下內(nèi)容:

import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';//引入全部的樣式
Vue.use(ElementUI);
2)按需引入 借助插件,無需再引入'element-ui/lib/theme-chalk/index.css'文件

借助 babel-plugin-component,我們可以只引入需要的組件,以達(dá)到減小項(xiàng)目體積的目的。
首先,安裝 babel-plugin-component:

npm install babel-plugin-component -D

然后,將 .babelrc 修改為:

  "presets": [["es2015", { "modules": false }]],
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]
}

接下來,如果你只希望引入部分組件,比如 Button 和 Select,那么需要在 main.js 中寫入以下內(nèi)容:

import { Button, Select } from 'element-ui';
Vue.component(Button.name, Button);
Vue.component(Select.name, Select);

2.自定義主題 前三種方式不支持按需引入樣式,第四種配合插件可以按需引入

1)主題編輯器, 使用在線主題編輯器,定制 Element 所有全局和組件的 Design Tokens,下載使用
2)僅替換主題色 ,使用在線主題生成工具 ,下載使用
3)只在項(xiàng)目中改變 SCSS 變量

新建一個(gè)樣式文件,例如element-variables.scss,寫入以下內(nèi)容:

/* 改變主題色變量 */
$--color-primary: teal;

/* 改變 icon 字體路徑變量,必需 */
$--font-path: '~element-ui/lib/theme-chalk/fonts';

@import "~element-ui/packages/theme-chalk/src/index"; //包含全部的樣式scss文件

之后,在項(xiàng)目的入口文件中,直接引入以上樣式文件即可(無需引入 Element 編譯好的 CSS 文件):

import Vue from 'vue'
import Element from 'element-ui'
import './element-variables.scss'
Vue.use(Element)
4)命令行主題工具
1.安裝工具:
npm i element-theme -g
npm i element-theme-chalk -D  //安裝白堊主題
2.初始化變量文件

如上是全局安裝可以在命令行里通過 et 調(diào)用工具,如果安裝在當(dāng)前目錄下,需要通過 node_modules/.bin/et 訪問到命令。執(zhí)行 -i 初始化變量文件。默認(rèn)輸出到 element-variables.scss,當(dāng)然你可以傳參數(shù)指定文件輸出目錄。

et -i
? Generator variables file

3.修改變量

直接編輯 element-variables.scss 文件,例如修改主題色為紅色。

$--color-primary: red;

4. 編譯主題 默認(rèn)編譯的主題輸出到 ./theme 目錄下

ps: 注意不要手動(dòng)修改./theme下的*.css文件樣式,因?yàn)閑t命令編譯輸出會(huì)覆蓋
可以再package.json script字段增加命令:"build_theme": "node_modules/.bin/et -o ./themes"
運(yùn)行:npm run build_theme
如果以上工具全局安裝了,運(yùn)行:

et
> ? build theme font
> ? build element theme

5. 使用自定義主題
  1. 完整引入樣式:
    main.js里直接引用「在線主題編輯器」或「命令行工具」生成的主題的 theme/index.css文件即可。
import '../theme/index.css'
import ElementUI from 'element-ui'
import Vue from 'vue'
Vue.use(ElementUI)
  1. 搭配插件按需引入組件主題
    如果是搭配 babel-plugin-component 一起使用,只需要修改 .babelrc 的配置,指定 styleLibraryName 路徑為自定義主題相對(duì)于 .babelrc 的路徑,注意要加 ~。(無需再在main.js引入theme/index.css文件)
{
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "~theme"
      }
    ]
  ]
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • element自定義主題官網(wǎng) 1. 項(xiàng)目中用了scss 直接在項(xiàng)目中改變 Element 的樣式變量。新建一個(gè)樣式...
    miliusa閱讀 6,074評(píng)論 0 0
  • 安裝 npm i element-ui -S 完整引入 在mian.js中復(fù)制如下代碼 按需引入 按需引入需要借助...
    紫氣楠楠閱讀 589評(píng)論 0 1
  • 前言 手上有些項(xiàng)目用的element-ui,剛好有空琢磨一下怎么減小打包文件大小和打包速度方面,為了演示實(shí)驗(yàn),用v...
    world_7735閱讀 1,441評(píng)論 0 1
  • 碰到了奇葩事情,記錄一下。竟然是同事在修改 element-variables.scss 代碼不小心刪除一行代碼,...
    撐船的擺渡人閱讀 17,914評(píng)論 1 1
  • 苦夏廢話多: 1, 杜絕無謂的社交。 不與爛人爛事糾纏。 學(xué)會(huì)認(rèn)輸。 常與同好爭高下,不與傻瓜論短長。 打疼那些總...
    馬唐閱讀 227評(píng)論 0 1

友情鏈接更多精彩內(nèi)容