element-ui中按需引入的实现


Posted in Javascript onDecember 25, 2019

element-ui中按需引入

为什么选择 element-ui 而不是 iview

因为在多次使用两个组件的过程中慢慢发现,iview 的一些组件还是需要再完善,而 element-ui 现在更加的成熟

所以, 这里我们一起来学习一下在 vue 中按需引入 element-ui 一些组件中的坑(Dialog组件)

这里我们使用的版本是 element-ui : 2.4.7,vue: 2.2.2

1、按需引入

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

npm install babel-plugin-component -D

2. 更改.babelrc文件

"plugins": [
  [
   "component",
   {
    "libraryName": "element-ui",
    "styleLibraryName": "theme-chalk"
   }
  ]
 ]

当然这里如果有其他的配置,只需要在 plugins 的数组中继续添加我们需要的配置代码就行了

2、 我们将按需引入的代码单独分割一下

1. 在 src 文件夹中新建我们的 element 文件夹,并在里面新建一个 index.js 文件

element-ui中按需引入的实现

2. 在index文件中去书写我们需要引入的部分组件

// 导入自己需要的组件
import { Select, Option, OptionGroup, Input, Tree, Dialog, Row, Col } from 'element-ui'
const element = {
 install: function (Vue) {
  Vue.use(Select)
  Vue.use(Option)
  Vue.use(OptionGroup)
  Vue.use(Input)
  Vue.use(Tree)
  Vue.use(Dialog)
  Vue.use(Row)
  Vue.use(Col)
 }
}
export default element

这里要使用 Select 组件,必须同时使用 OptionOptionGroup
这里的 install 方法表示在 main.js 中,如果使用 Vue.use() 方法的话,则该方法默认会调用 install 方法

3. 在 main.js 中使用该文件,就大功告成了

// css样式还是需要全部引入
	import 'element-ui/lib/theme-chalk/index.css'
	import element from './element/index'
	Vue.use(element)

3、为什么要使用 单独分割的方式去按需加载

1. 我们使用常规的方式再来加载一次在 main.js 文件中 直接使用

import 'element-ui/lib/theme-chalk/index.css'
import { Dialog, Select, Option, OptionGroup, Input, Tree, Row, Col } from 'element-ui'
Vue.use(Select)
Vue.use(Option)
Vue.use(OptionGroup)
Vue.use(Input)
Vue.use(Tree)
Vue.use(Dialog)
Vue.use(Row)
Vue.use(Col)

不好意思,现在就报错了

element-ui中按需引入的实现

我们在 element-ui 的源码中可以看到,的确使用的是 Dialog,但是我们在运行的时候还是报错了

element-ui中按需引入的实现

2. 我们将引入的 Dialog 做一些修改,如下图

element-ui中按需引入的实现

可以看到,我们现在改成小写,项目是可以正常运行的,应该是不是 element-ui 的一些小失误吧,这样的写法会将我们的 main.js 文件变得很大很复杂,所以我们建议是 使用第一中方式来按需加载 element-ui 的一些组件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS控制图片等比例缩放的示例代码
Dec 24 Javascript
jQuery获得内容和属性示例代码
Jan 16 Javascript
javascript中不提供sleep功能如何实现这个功能
May 27 Javascript
jQuery中odd选择器的定义和用法
Dec 23 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
Jan 13 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
Apr 26 Javascript
vue+springboot前后端分离实现单点登录跨域问题解决方法
Jan 30 Javascript
vue2.0 下拉框默认标题设置方法
Aug 22 Javascript
jQuery实现的自定义轮播图功能详解
Dec 28 jQuery
django中使用vue.js的要点总结
Jul 07 Javascript
js canvas实现5张图片合成一张图片
Jul 15 Javascript
ant-design-vue 实现表格内部字段验证功能
Dec 16 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
Dec 25 #Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
Dec 25 #jQuery
解决Vue 刷新页面导航显示高亮位置不对问题
Dec 25 #Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
Dec 25 #Javascript
如何基于JS截获动态代码
Dec 25 #Javascript
通过微信公众平台获取公众号文章的方法示例
Dec 25 #Javascript
vue远程加载sfc组件思路详解
Dec 25 #Javascript
You might like
比较时间段一与时间段二是否有交集的php函数
2011/05/31 PHP
php cURL和Rolling cURL并发方式比较
2013/10/30 PHP
phpQuery让php处理html代码像jQuery一样方便
2015/01/06 PHP
php递归创建目录的方法
2015/02/02 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
JS target与currentTarget区别说明
2011/08/28 Javascript
javascript 快速排序函数代码
2012/05/30 Javascript
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
javascript图片延迟加载实现方法及思路
2015/12/31 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
Python中List.index()方法的使用教程
2015/05/20 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
python3 线性回归验证方法
2019/07/09 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
python 进程的几种创建方式详解
2019/08/29 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
Python常用编译器原理及特点解析
2020/03/23 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
怎么写自荐书范文
2014/02/12 职场文书
会计求职自荐信
2014/06/20 职场文书
干部个人对照检查材料
2014/08/25 职场文书
浅析python中特殊文件和特殊函数
2022/02/24 Python
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js