element-ui引入方式、自定义主题

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

1)完整引入

在 main.js 中写入以下内容:

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,我们可以只引入需要的组件,以达到减小项目体积的目的。
首先,安装 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 中写入以下内容:

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

2.自定义主题 前三种方式不支持按需引入样式,第四种配合插件可以按需引入

1)主题编辑器, 使用在线主题编辑器,定制 Element 所有全局和组件的 Design Tokens,下载使用
2)仅替换主题色 ,使用在线主题生成工具 ,下载使用
3)只在项目中改变 SCSS 变量

新建一个样式文件,例如element-variables.scss,写入以下内容:

/* 改变主题色变量 */
$--color-primary: teal;

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

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

之后,在项目的入口文件中,直接引入以上样式文件即可(无需引入 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 调用工具,如果安装在当前目录下,需要通过 node_modules/.bin/et 访问到命令。执行 -i 初始化变量文件。默认输出到 element-variables.scss,当然你可以传参数指定文件输出目录。

et -i
✔ Generator variables file

3.修改变量

直接编辑 element-variables.scss 文件,例如修改主题色为红色。

$--color-primary: red;

4. 编译主题 默认编译的主题输出到 ./theme 目录下

ps: 注意不要手动修改./theme下的*.css文件样式,因为et命令编译输出会覆盖
可以再package.json script字段增加命令:"build_theme": "node_modules/.bin/et -o ./themes"
运行:npm run build_theme
如果以上工具全局安装了,运行:

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 路径为自定义主题相对于 .babelrc 的路径,注意要加 ~。(无需再在main.js引入theme/index.css文件)
{
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "~theme"
      }
    ]
  ]
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • element自定义主题官网 1. 项目中用了scss 直接在项目中改变 Element 的样式变量。新建一个样式...
    miliusa阅读 5,995评论 0 0
  • 安装 npm i element-ui -S 完整引入 在mian.js中复制如下代码 按需引入 按需引入需要借助...
    紫气楠楠阅读 551评论 0 1
  • 前言 手上有些项目用的element-ui,刚好有空琢磨一下怎么减小打包文件大小和打包速度方面,为了演示实验,用v...
    world_7735阅读 1,331评论 0 1
  • 碰到了奇葩事情,记录一下。竟然是同事在修改 element-variables.scss 代码不小心删除一行代码,...
    撑船的摆渡人阅读 17,878评论 1 1
  • 苦夏废话多: 1, 杜绝无谓的社交。 不与烂人烂事纠缠。 学会认输。 常与同好争高下,不与傻瓜论短长。 打疼那些总...
    马唐阅读 215评论 0 1