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 相关文章推荐
漂亮的widgets,支持换肤和后期开发新皮肤
Apr 23 Javascript
js 动态选中下拉框
Nov 26 Javascript
JavaScript CSS修改学习第三章 修改样式表
Feb 19 Javascript
初窥JQuery-Jquery简介 入门了解篇
Nov 25 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
Jan 22 Javascript
js中用window.open()打开多个窗口的name问题
Mar 13 Javascript
javascript中Array()数组函数详解
Aug 23 Javascript
jQuery视差滚动效果网页实现方法经验总结
Sep 29 Javascript
angular使用bootstrap方法手动启动的实例代码
Jul 18 Javascript
jQuery 实现批量提交表格多行数据的方法
Aug 09 jQuery
vue实现todolist基本功能以及数据存储功能实例详解
Apr 11 Javascript
javascript canvas实现简易时钟例子
Sep 05 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
详解基于vue的服务端渲染框架NUXT
2018/06/20 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
简单介绍利用TK在Python下进行GUI编程的教程
2015/04/13 Python
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
Python 含参构造函数实例详解
2017/05/25 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
天游软件面试
2013/11/23 面试题
什么是TCP/IP
2014/07/27 面试题
高中数学教学反思
2014/01/30 职场文书
工业设计专业自荐书
2014/06/05 职场文书
大专生自荐书范文
2014/06/22 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
运动会加油稿100字
2014/09/19 职场文书
律师函格式范本
2015/05/27 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书