Element 更新以及全局设置属性

一、前言

在使用 Vue 框架最常用的 UI 便是 Element,这里就做一些全局设置、升级等做一些介绍。

二、全局设置

在引入 Element 时,可以传入一个全局配置对象。该对象目前支持 size 与 zIndex 字段。size 用于改变组件的默认尺寸,zIndex 设置弹框的初始 z-index(默认值:2000)。按照引入 Element 的方式,具体操作如下:

完整引入 Element:

import Vue from 'vue';
import Element from 'element-ui';
Vue.use(Element, { size: 'small', zIndex: 3000 });

按需引入 Element:

import Vue from 'vue';
import { Button } from 'element-ui';

Vue.prototype.$ELEMENT = { size: 'small', zIndex: 3000 };
Vue.use(Button);

按照以上设置,项目中所有拥有 size 属性的组件的默认尺寸均为 'small',弹框的初始 z-index 为 3000。

以上内容引自官网

三、升级 Element 和主题

在更新 Element 版本的时候,是需要一起更新主题的。

首先:

npm update element-ui -S

更新到最新版本。

接下来就是更新主题,我这里选的是用“命令行主题工具”来生成主题样式代码。

首先安装「主题生成工具」,可以全局安装或者安装在当前项目下,推荐安装在项目里,方便别人 clone 项目时能直接安装依赖并启动,这里以全局安装做演示。

(下面我安装的全局的)

npm i element-theme -g

安装白垩主题,可以从 npm 安装或者从 GitHub 拉取最新代码。

# 从 npm (这里是当前项目,和 et 使用不一样)
npm i element-theme-chalk -D

# 从 GitHub
npm i https://github.com/ElementUI/theme-chalk -D

初始化变量文件

主题生成工具安装成功后,如果全局安装可以在命令行里通过 et 调用工具,如果安装在当前目录下,需要通过 node_modules/.bin/et 访问到命令。执行 -i 初始化变量文件。默认输出到 element-variables.scss,当然你可以传参数指定文件输出目录。

et -i [可以自定义变量文件]

注意:

这一步可能会报错:primordials is not defined,这个错误的问题是 Node 的版本过高,把 Node 降到 11.15.0 以下就可以。

因为这一步只是编译,和代码运行环境不冲突,建议使用 NVM 切换 Node 进行编译主题,运行代码时再切换高版本即可。

修改变量

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

$--color-primary: red;

编译主题

保存文件后,到命令行里执行 et 编译主题,如果你想启用 watch 模式,实时编译主题,增加 -w 参数;如果你在初始化时指定了自定义变量文件,则需要增加 -c 参数,并带上你的变量文件名。默认情况下编译的主题目录是放在 ./theme 下,你可以通过 -o 参数指定打包目录。

et

> ✔ build theme font
> ✔ build element theme

引入自定义主题

在 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 路径为自定义主题相对于 .babelrc 的路径,注意要加 ~

{
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "~theme"
      }
    ]
  ]
}
原文地址:https://www.cnblogs.com/zhurong/p/13597474.html