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中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
Nov 03 Javascript
传智播客学习之java 反射
Nov 22 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
Apr 02 Javascript
Jquery实现弹出层分享微博插件具备动画效果
Apr 03 Javascript
Javascript 中 null、NaN和undefined的区别总结
Apr 10 Javascript
使用Node.js实现HTTP 206内容分片的教程
Jun 23 Javascript
JS基于Ajax实现的网页Loading效果代码
Oct 27 Javascript
利用JS实现数字增长
Jul 28 Javascript
js实现简单的碰壁反弹效果
Aug 30 Javascript
微信小程序网络封装(简单高效)
Aug 06 Javascript
jquery.pager.js实现分页效果
Jul 29 jQuery
vue3不同环境下实现配置代理
May 25 Vue.js
原生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面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
解析PHP 使用curl提交json格式数据
2013/06/29 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
JavaScript的public、private和privileged模式
2009/12/28 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
实例讲解JQuery中this和$(this)区别
2014/12/08 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
jquery实现拖动效果
2016/08/10 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
Python实现比较两个文件夹中代码变化的方法
2015/07/10 Python
python解析基于xml格式的日志文件
2017/02/25 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
python多线程之事件Event的使用详解
2018/04/27 Python
Django添加feeds功能的示例
2018/08/07 Python
python3学生名片管理v2.0版
2018/11/29 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
HTML5 CSS3打造相册效果附源码下载
2014/06/16 HTML / CSS
电子商务应届生求职信
2013/11/16 职场文书
办理信用卡工作证明
2014/01/11 职场文书
建筑项目策划书
2014/01/13 职场文书
暑假家长评语大全
2014/04/17 职场文书
出国签证在职证明
2014/09/20 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
简单介绍Python的第三方库yaml
2021/06/18 Python
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS