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之旅 对象的原型链之由来
Aug 25 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
Oct 25 Javascript
jQuery过滤选择器:not()方法使用介绍
Apr 20 Javascript
jquery带动画效果幻灯片特效代码
Aug 27 Javascript
深入理解Java线程编程中的阻塞队列容器
Dec 07 Javascript
jQuery中$.each()函数的用法引申实例
May 12 Javascript
JS获得多个同name 的input输入框的值的实现方法
Jan 09 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
Jan 10 Javascript
JS实现touch 点击滑动轮播实例代码
Jan 19 Javascript
js实现textarea限制输入字数
Feb 13 Javascript
Vue学习笔记进阶篇之过渡状态详解
Jul 14 Javascript
JavaScript程序设计高级算法之动态规划实例分析
Nov 24 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
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
php实现文本数据导入SQL SERVER
2015/05/17 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
Javascript Object.extend
2010/05/18 Javascript
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
验证码按回车不变解决方法
2013/03/29 Javascript
javascript使用定时函数实现跳转到某个页面
2013/12/25 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
JavaScript实现随机点名小程序
2020/10/29 Javascript
Python的argparse库使用详解
2018/10/09 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
如何写早恋检讨书
2014/09/10 职场文书
四年级数学上册教学计划
2015/01/20 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
2016保送生自荐信范文
2016/01/29 职场文书
《怀念母亲》教学反思
2016/02/19 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL