当前位置:   article > 正文

element-ui 组件按需加载实现_elmui

elmui

在实现element-ui按需加载前,需要先安装好element-ui和  babel-plugin-component

借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。

安装:

  1. npm i element-ui -S
  2. npm install babel-plugin-component -D

在安装完成后会在  package.json  内看到安装完成的内容:

在安装完成后,在项目内新建 babel.config.js文件(和package.json文件同级)

(我使用的版本较早,配置使用的是babel.config.js,但是你版本比较早的话,需要使用官网内的按需加载,配置文件的名称是 .babelrc  组件 | Element

babel.config.js:

  1. module.exports = {
  2. presets: [
  3. '@vue/cli-plugin-babel/preset'
  4. ],
  5. plugins: [
  6. [
  7. 'component',
  8. {
  9. libraryName: 'element-ui',
  10. styleLibraryName: 'theme-chalk'
  11. }
  12. ]
  13. ]
  14. }

在创建完成后,需要新建一个文件专门用于存放按需引入的组件,因为少量组件的话可以直接在main.js内引入,项目内的组件数量会不断增多,需要单独建个文件用于存放引入的组件:

这里在src下新增了plugins文件夹,文件夹下的element.js文件用于存放按需引入内容。

element.js

  1. import Vue from 'vue'
  2. import { Button, Form, FormItem, Input, Message,
  3. Container, Header, Aside, Main, Menu, Submenu,
  4. MenuItem, Breadcrumb, BreadcrumbItem, Card,
  5. Row, Col, Table, TableColumn, Switch, Tooltip,
  6. Pagination, Dialog, MessageBox, Tag,Tree, Select,
  7. Option, Cascader,Alert, Tabs, TabPane, Steps, Step,
  8. CheckboxGroup, Checkbox, Upload, Timeline, TimelineItem} from 'element-ui'
  9. Vue.use(Button)
  10. Vue.use(Form)
  11. Vue.use(FormItem)
  12. Vue.use(Input)
  13. Vue.use(Container)
  14. Vue.use(Header)
  15. Vue.use(Aside)
  16. Vue.use(Main)
  17. Vue.use(Menu)
  18. Vue.use(Submenu)
  19. Vue.use(MenuItem)
  20. Vue.use(Breadcrumb)
  21. Vue.use(BreadcrumbItem)
  22. Vue.use(Card)
  23. Vue.use(Row)
  24. Vue.use(Col)
  25. Vue.use(Table)
  26. Vue.use(TableColumn)
  27. Vue.use(Switch)
  28. Vue.use(Tooltip)
  29. Vue.use(Pagination)
  30. Vue.use(Dialog)
  31. Vue.use(Tag)
  32. Vue.use(Tree)
  33. Vue.use(Select)
  34. Vue.use(Option)
  35. Vue.use(Cascader)
  36. Vue.use(Alert)
  37. Vue.use(Tabs)
  38. Vue.use(TabPane)
  39. Vue.use(Steps)
  40. Vue.use(Step)
  41. Vue.use(CheckboxGroup)
  42. Vue.use(Checkbox)
  43. Vue.use(Upload)
  44. Vue.use(Timeline)
  45. Vue.use(TimelineItem)
  46. // 这个特殊的是message, 需要全局挂载 弹窗
  47. Vue.prototype.$message = Message
  48. Vue.prototype.$confirm = MessageBox.confirm

上述部分等于把需要引入的东西都加载了,然后需要最重要的一步:

需要在main.js内引入这个文件:

import './plugins/element.js'

这里的main.js和plugins是同级。

这就是一个完整的引入过程了,当后续需要用到什么组件时,就可以直接去element.js文件内添加。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/174017?site
推荐阅读
相关标签
  

闽ICP备14008679号