美文网首页
element-ui引入方式、自定义主题

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

作者: 忍不住的k | 来源:发表于2020-02-17 22:58 被阅读0次

    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-ui引入方式、自定义主题

          本文链接:https://www.haomeiwen.com/subject/rfzifhtx.html