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 localStorage实现本地缓存的方法
Jun 22 Javascript
jQuery实现滚动切换的tab选项卡效果代码
Aug 26 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
Oct 01 Javascript
一分钟理解js闭包
May 04 Javascript
Bootstrap BootstrapDialog使用详解
Feb 17 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
Jul 10 Javascript
Gulp实现静态网页模块化的方法详解
Jan 09 Javascript
javascript实现简易聊天室
Jul 12 Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
Aug 17 Javascript
Vue插件之滑动验证码用法详解
Apr 05 Javascript
Vue-cli 移动端布局和动画使用详解
Aug 10 Javascript
微信小程序实现音乐播放页面布局
Dec 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给图片加水印的实现代码
2020/04/18 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
srcElement表格样式
2006/09/03 Javascript
JavaScript读取中文cookie时的乱码问题的解决方法
2009/10/14 Javascript
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
js新闻滚动 js如何实现新闻滚动效果
2013/01/07 Javascript
jQuery实现 注册时选择阅读条款 左右移动
2013/04/11 Javascript
javascript实用小函数使用介绍
2013/11/11 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
Vue2.0 http请求以及loading展示实例
2018/03/06 Javascript
Vue面试题及Vue知识点整理
2018/10/07 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
Python实现线性插值和三次样条插值的示例代码
2019/11/13 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
优秀的茶餐厅创业计划书
2014/01/03 职场文书
校园达人秀策划书
2014/01/12 职场文书
监察建议书范文
2014/03/12 职场文书
先进事迹演讲稿
2014/09/01 职场文书
七一建党日演讲稿
2014/09/05 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
惊天动地观后感
2015/06/10 职场文书
迎新年主持词
2015/07/06 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
十大最强飞行系宝可梦,BUG燕上榜,第二是飞行系王者
2022/03/18 日漫
linux目录管理方法介绍
2022/06/01 Servers
python+opencv实现目标跟踪过程
2022/06/21 Python