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 相关文章推荐
javascript 命名空间以提高代码重用性
Nov 13 Javascript
JavaScript浏览器选项卡效果
Aug 25 Javascript
jquery xMarquee实现文字水平无缝滚动效果
Apr 29 Javascript
Json实现异步请求提交评论无需跳转其他页面
Oct 11 Javascript
详解JavaScript常量定义
Jan 03 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
Feb 19 Javascript
JS实现无缝循环marquee滚动效果
May 22 Javascript
详解ES6中的 Set Map 数据结构学习总结
Nov 06 Javascript
7个好用的JavaScript技巧分享(译)
May 07 Javascript
layer更改皮肤的实现方法
Sep 11 Javascript
taro小程序添加骨架屏的实现代码
Nov 15 Javascript
JavaScript实现拖拽功能
Feb 11 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的一个简单加密解密代码
2014/01/14 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
2016/05/09 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
在网页中控制wmplayer播放器
2006/07/01 Javascript
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
python操作redis方法总结
2018/06/06 Python
简单了解python单例模式的几种写法
2019/07/01 Python
简单了解django缓存方式及配置
2019/07/19 Python
Python安装whl文件过程图解
2020/02/18 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
css 如何让背景图片拉伸填充避免重复显示
2013/07/11 HTML / CSS
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
电子商务专业毕业生工作推荐信
2013/11/17 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
社区文艺活动方案
2014/08/19 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
授权委托书范本(单位)
2014/09/28 职场文书
2014年化验室工作总结
2014/11/21 职场文书
《少年闰土》教学反思
2016/02/18 职场文书