原文章:

https://blog.csdn.net/qq_44827865/article/details/115457445

element-plus官方网站:https://element-plus.gitee.io/#/zh-CN/component/installation

甲:为什么在vue3.0中不能使用Element UI了?
乙:由于vue3.0在插件install函数的入参从Vue原型(类)改成了app(vue实例),导致element-ui中Vue.prototype.* 这样的代码已经全都失效了。所以element-ui铁定是不兼容了。
甲:那有什么方法能解决吗?
乙:使用Element UI的升级版element-plus

1、element-plus 安装

npm install element-plus --save

2、引入 Element Plus

2.1 完整引入

在 main.js /ts中写入以下内容:

import { createApp } from 'vue'
import ElementPlus from 'element-plus';
import 'element-plus/lib/theme-chalk/index.css';
import App from './App.vue'; const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')

2.2 按需引入

(1)安装 babel-plugin-import:

npm install babel-plugin

(2)将 babel.config.js 修改为:

module.exports = {
plugins: [
[
"import",
{
libraryName: 'element-plus',
customStyleName: (name) => {
name = name.slice(3)
return `element-plus/packages/theme-chalk/src/${name}.scss`;
},
},
],
],
};

(3)创建 src/plugins/elements.js文件

文件内容如下:

  1 import {
2 ElAlert,
3 ElAside,
4 ElAutocomplete,
5 ElAvatar,
6 ElBacktop,
7 ElBadge,
8 ElBreadcrumb,
9 ElBreadcrumbItem,
10 ElButton,
11 ElButtonGroup,
12 ElCalendar,
13 ElCard,
14 ElCarousel,
15 ElCarouselItem,
16 ElCascader,
17 ElCascaderPanel,
18 ElCheckbox,
19 ElCheckboxButton,
20 ElCheckboxGroup,
21 ElCol,
22 ElCollapse,
23 ElCollapseItem,
24 ElCollapseTransition,
25 ElColorPicker,
26 ElContainer,
27 ElDatePicker,
28 ElDialog,
29 ElDivider,
30 ElDrawer,
31 ElDropdown,
32 ElDropdownItem,
33 ElDropdownMenu,
34 ElFooter,
35 ElForm,
36 ElFormItem,
37 ElHeader,
38 ElIcon,
39 ElImage,
40 ElInput,
41 ElInputNumber,
42 ElLink,
43 ElMain,
44 ElMenu,
45 ElMenuItem,
46 ElMenuItemGroup,
47 ElOption,
48 ElOptionGroup,
49 ElPageHeader,
50 ElPagination,
51 ElPopconfirm,
52 ElPopover,
53 ElPopper,
54 ElProgress,
55 ElRadio,
56 ElRadioButton,
57 ElRadioGroup,
58 ElRate,
59 ElRow,
60 ElScrollbar,
61 ElSelect,
62 ElSlider,
63 ElStep,
64 ElSteps,
65 ElSubmenu,
66 ElSwitch,
67 ElTabPane,
68 ElTable,
69 ElTableColumn,
70 ElTabs,
71 ElTag,
72 ElTimePicker,
73 ElTimeSelect,
74 ElTimeline,
75 ElTimelineItem,
76 ElTooltip,
77 ElTransfer,
78 ElTree,
79 ElUpload,
80 ElInfiniteScroll,
81 ElLoading,
82 ElMessage,
83 ElMessageBox,
84 ElNotification,
85 } from "element-plus";
86
87
88 const components = [
89 ElAlert,
90 ElAside,
91 ElAutocomplete,
92 ElAvatar,
93 ElBacktop,
94 ElBadge,
95 ElBreadcrumb,
96 ElBreadcrumbItem,
97 ElButton,
98 ElButtonGroup,
99 ElCalendar,
100 ElCard,
101 ElCarousel,
102 ElCarouselItem,
103 ElCascader,
104 ElCascaderPanel,
105 ElCheckbox,
106 ElCheckboxButton,
107 ElCheckboxGroup,
108 ElCol,
109 ElCollapse,
110 ElCollapseItem,
111 ElCollapseTransition,
112 ElColorPicker,
113 ElContainer,
114 ElDatePicker,
115 ElDialog,
116 ElDivider,
117 ElDrawer,
118 ElDropdown,
119 ElDropdownItem,
120 ElDropdownMenu,
121 ElFooter,
122 ElForm,
123 ElFormItem,
124 ElHeader,
125 ElIcon,
126 ElImage,
127 ElInput,
128 ElInputNumber,
129 ElLink,
130 ElMain,
131 ElMenu,
132 ElMenuItem,
133 ElMenuItemGroup,
134 ElOption,
135 ElOptionGroup,
136 ElPageHeader,
137 ElPagination,
138 ElPopconfirm,
139 ElPopover,
140 ElPopper,
141 ElProgress,
142 ElRadio,
143 ElRadioButton,
144 ElRadioGroup,
145 ElRate,
146 ElRow,
147 ElScrollbar,
148 ElSelect,
149 ElSlider,
150 ElStep,
151 ElSteps,
152 ElSubmenu,
153 ElSwitch,
154 ElTabPane,
155 ElTable,
156 ElTableColumn,
157 ElTabs,
158 ElTag,
159 ElTimePicker,
160 ElTimeSelect,
161 ElTimeline,
162 ElTimelineItem,
163 ElTooltip,
164 ElTransfer,
165 ElTree,
166 ElUpload,
167 ]
168 const plugins = [
169 ElInfiniteScroll,
170 ElLoading,
171 ElMessage,
172 ElMessageBox,
173 ElNotification,
174 ]
175 const installElement = (app) => {
176 components.forEach((component) => {
177 app.component(component.name, component)
178 })
179
180 plugins.forEach((plugin) => {
181 app.use(plugin)
182 })
183 }
184
185 export {
186 installElement
187 }

(4)在main.js导入

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store' // 导入Element
import { installElement } from "./plugins/elements"; const app = createApp(App)
// 调用installElement
installElement(app) // 使用installElement
createApp(App).use(store).use(router).use(installElement).mount('#app')

vue cli3 使用elemet-plus的更多相关文章

  1. 在 vue cli3 的项目中配置双服务,模拟 ajax 分页请求

    最近安装了下vue cli3版本,与 cli 2 相比,文件少了,以前配置方法也不管用了.demo 中的大量的数据,需要做成 ajax 请求的方式来展示数据,因此,需要启动两个服务,一个用作前端请求, ...

  2. 安装VUE Cli3 框架方法

    下面为大家介绍一下怎样安装  VUE Cli3的步骤 官网地址  https://cli.vuejs.org/zh/guide/installation.html 一.首先要检查一下是否安装node环 ...

  3. vue cli3.0 结合echarts3.0和地图的使用方法

    echarts 提供了直观,交互丰富,可高度个性化定制的数据可视化图表.而vue更合适操纵数据. 最近一直忙着搬家,就没有更新博客,今天抽出空来写一篇关于vue和echarts的博客.下面是结合地图的 ...

  4. Vue CLI3 开启gzip压缩

    gizp压缩是一种http请求优化方式,通过减少文件体积来提高加载速度.html.js.css文件甚至json数据都可以用它压缩,可以减小60%以上的体积. webpack在打包时可以借助 compr ...

  5. vue/cli3 配置vux

    安装各插件 试过 安装“必须安装”的部分亦可 1.安装vuex npm install vuex --save-dev 2.在项目里面安装vux[必须安装] npm install vux --sav ...

  6. 全局安装 Vue cli3 和 继续使用 Vue-cli2.x

    官方链接:https://cli.vuejs.org/zh/guide/installation.html 1.安装Vue cli3 关于旧版本 Vue CLI 的包名称由 vue-cli 改成了 @ ...

  7. vue cli3超详细创建多页面配置

    1.首先按照vue cli3 给的入门文档下载个vue cli3 如果之前下载了vue cli2的要先卸载之前的 2.检查安装是否成功 3.ok,现在环境搭建好了,新建项目 vue create he ...

  8. Vue CLI3 关闭热替换后出现的warning

    用vue cli3做项目的时候如果开启了typescript的严格模式,在dev server热替换的时候往往就会打出一大堆warning,严重的影响了编译效率.官方并没有提供关闭warning的ap ...

  9. Vue Cli3 中别名的配置问题

    Vue Cli3 中别名的配置问题 vue-cli3中是没有config.build等目录的,这是因为vue-cli3中将这些配置隐藏起来了,如果想要修改,可以在vue.config.js文件中进行修 ...

  10. 解决vue/cli3.0 语法验证规则 ESLint: Expected indentation of 2 spaces but found 4. (indent)

    当你使用vue/cli3.0的时,有可能出现雁阵规则 ESLint: Expected indentation of 2 spaces but found 4. (indent) 解决方法 1.在vu ...

随机推荐

  1. 二进制部署K8S-2集群部署

    二进制部署K8S-2集群部署 感谢老男孩教育王导的公开视频,文档整理自https://www.yuque.com/duduniao/k8s. 因为在后期运行容器需要有大量的物理硬件资源使用的环境是用的 ...

  2. lambda 函数执行流程 递归注意

  3. 修改mysql中数据库存储主路径

    一.首先把mysql的服务先停掉. 二.更改MySQL配置文件My.ini中的数据库存储主路径 打开文件夹C:\ProgramData\MySQL\MySQL Server 5.7中的my.ini文件 ...

  4. 处理SpringMVC中遇到的乱码问题

    乱码在日常开发写代码中是非常常见的,以前乱码使用的是通过设置一个过滤器解决, 现在可以使用SpringMVC给提供的过滤器,在web.xml设置,这比我们自己写的过滤器强大的的多. 注意:每次修改了x ...

  5. Zabbix企业分布式监控工具

    前言:在工作中常常需要对服务器进行监控,但是要选择一款合适监控软件可不容易,今天介绍下zabbix这款监控软件 一.Zabbix介绍1.Zabbix是一个企业级的.开源的.分布式的监控套件2.Zabb ...

  6. 浅谈:Redis持久化机制(二)AOF篇

    浅谈:Redis持久化机制(二)AOF篇 ​ 上一篇我们提及到了redis的默认持久化方式RDB,是一种通过存储快照数据方式持久化的机制,它在宕机后会丢失掉最后一次更新RDB文件后的数据,这也是由于它 ...

  7. Gbps接口面向汽车应用

    Gbps接口面向汽车应用 Gbps interfaces target automotive appications 巴黎--不久前,移动通信行业是一个领着芯片商的领头羊,命令坐着,脚跟着,然后翻身. ...

  8. Tomcat配置probe详细过程(步骤加截图)

    1.先下载probe.war包,点击probe.war进行下载:附上下载地址:https://github.com/psi-probe/psi-probe/releases 2.将probe.war包 ...

  9. jvm调优神器——arthas

    在上一篇<jvm调优的几种场景>中介绍了几种常见的jvm方面调优的场景,用的都是jdk自带的小工具,比如jps.jmap.jstack等.用这些自带的工具排查问题时最大的痛点就是过程比较麻 ...

  10. 编译原理-翻译程序(Translator)

    分为编译程序(compiler)和解释程序(interpreter) 编译程序:把源程序(高级语言编写)转换成目标程序(汇编语言或机器语言编写). 解释程序:对源程序边翻译边执行. 编译型语言 优点: ...