原文章:

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. [前端] JSON

    背景 JavaScript对象表示法(JavaScript Object Notation):是一种存储数据的方式 JSON对象 创建 var gareen = {"name":& ...

  2. Select Screen 0 with xrandr Ask QuestionScreen 0" here describes your whole virtual display made of these two outputs: eDP-1-

    Screen 0" here describes your whole virtual display made of these two outputs: eDP-1-1: physica ...

  3. 如何使用ghost备份系统?

    如何使用ghost备份系统? 如何使用ghost工具电脑系统备份?需要具体的详细步骤 关注者 11 被浏览 13,197 关注问题写回答 ​邀请回答 ​添加评论 ​分享 ​     1 个回答 默认排 ...

  4. python发送钉钉消息

    import requests import time import hashlib import hmac import base64 import re def SendMessage(messa ...

  5. 如何在我的EC2实例状态更改时获取自定义电子邮件通知

    具体详情,请参见: https://amazonaws-china.com/cn/premiumsupport/knowledge-center/ec2-email-instance-state-ch ...

  6. Python 简单的龟鱼游戏

    游戏编程:按一下要求定义一个乌龟类和鱼类并尝试编程 假设游戏场景为范围(x,y)为 0<=x<=10,0<=y<=10 游戏生成1只乌龟和10条鱼 他们的移动方向均随机 乌龟的 ...

  7. Linux进阶之正则,shell三剑客(grep,awk,sed),cut,sort,uniq

    一.正则表达式:Regular Expression 正则表达式:正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式 ...

  8. 基于Centos7.4搭建prometheus+grafana+altertManger监控Spring Boot微服务(docker版)

    目的:给我们项目的微服务应用都加上监控告警.在这之前你需要将 Spring Boot Actuator引入 本章主要介绍 如何集成监控告警系统Prometheus 和图形化界面Grafana 如何自定 ...

  9. 3.20 tr:替换或删除字符

    tr命令 从标准输入中替换.缩减或删除字符,并将结果写到标准输出. tr [option] [SET1]  [SET2] tr [选项]   [字符1]  [字符2]   -d    删除字符 -s  ...

  10. JQuery 基础之基本选择器

    1.什么是jQuery选择器: jQuery选择器继承了CSS与Path语言的部分语法,允许通过标签名.属性名或内容对DOM元素进行快速.准确的选择,而不必担心浏览器的兼容性,通过jQuery选择器对 ...