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语法着色引擎(demo及打包文件下载)
Jun 13 Javascript
可选择和输入的下拉列表框示例
Nov 05 Javascript
判断复选框是否被选中的两种方法
Jun 04 Javascript
javascript中attribute和property的区别详解
Jun 05 Javascript
AngularJS中取消对HTML片段转义的方法例子
Jan 04 Javascript
require.js配合插件text.js实现最简单的单页应用程序
Jul 12 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
Jun 05 Javascript
微信小程序自定义音乐进度条的实例代码
Aug 28 Javascript
使用post方法实现json往返传输数据的方法
Mar 30 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
Apr 07 Javascript
vue组件实现移动端九宫格转盘抽奖
Oct 16 Javascript
Vue如何清空对象
Mar 03 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接收POST数据,解析json数据
2013/06/28 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
实例解析php的数据类型
2018/10/24 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
javascript之典型高阶函数应用介绍
2013/01/10 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
jQuery实现视频作为全屏幕背景
2014/12/18 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
ES10的13个新特性示例(小结)
2019/09/23 Javascript
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
Python正则表达式匹配ip地址实例
2014/10/09 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
python 文件操作删除某行的实例
2017/09/04 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
python性能测试工具locust的使用
2020/12/28 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
canvas绘制太极图的实现示例
2020/04/29 HTML / CSS
班组长安全职责
2014/01/05 职场文书
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
商业项目策划方案
2014/06/05 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
公司股东出资证明书
2014/11/01 职场文书
工伤调解协议书
2016/03/21 职场文书
pytorch 实现变分自动编码器的操作
2021/05/24 Python