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. 使用自定義主題
- 完整引入樣式:
在main.js里直接引用「在線主題編輯器」或「命令行工具」生成的主題的theme/index.css文件即可。
import '../theme/index.css'
import ElementUI from 'element-ui'
import Vue from 'vue'
Vue.use(ElementUI)
- 搭配插件按需引入組件主題
如果是搭配 babel-plugin-component 一起使用,只需要修改 .babelrc 的配置,指定 styleLibraryName 路徑為自定義主題相對(duì)于 .babelrc 的路徑,注意要加 ~。(無需再在main.js引入theme/index.css文件)
{
"plugins": [
[
"component",
{
"libraryName": "element-ui",
"styleLibraryName": "~theme"
}
]
]
}