原文章:

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. 一、python入门练习题

    题目: 练习1:华氏温度转摄氏温度. 练习2:输入圆的半径计算计算周长和面积. 练习3:输入年份判断是不是闰年. 答案: 练习1: """ 将华氏温度转换为摄氏温度 F ...

  2. 为何使用thrift-rpc与http的选择

    在工作中偶然看到公司旧架构在loaclserver中使用的是thrift,遂记录一下 thrif作为一种rpc框架 接口描述语言和二进制通信协议,至于为何使用thrift 其问题本质是为何在已有htt ...

  3. IDEA 快速上手指南(全配置)(Day_23)

    Idea快速入门指南 1.安装 1.1.安装 我们使用的是2017.3.4版本: 双击打开, 选择一个目录,最好不要中文和空格: 然后选择桌面快捷方式,请选择64位: 然后选择安装: 开始安装: 然后 ...

  4. kylin聚合组的使用案例

    在使用kylin聚合组进行优化的时候,往往不知道怎么使用. 这里有2个小案例可以参考. 1. 需要对某个维度进行隔离. 如果有些维度,你不想要它和其他维度一起出现,你就可以单独给它建一个聚合组,并且在 ...

  5. 一文带你搞懂 RPC 到底是个啥

    RPC(Remote Procedure Call),是一个大家既熟悉又陌生的词,只要涉及到通信,必然需要某种网络协议.我们很可能用过HTTP,那么RPC又和HTTP有什么区别呢?RPC还有什么特点, ...

  6. Django基本文件配置

    1.setting.py (1) ALLOWED_HOSTS = ['*'] (2) INSTALLED_APPS = ['app_name'] (3) TEMPLATES 中的   'DIRS': ...

  7. l初识CSRF(跨站请求伪造)

    一 CSRF是什么 CSRF(Cross-site request forgery)跨站请求伪造,也被称为"One Click Attack"或者Session Riding,通常 ...

  8. 『动善时』JMeter基础 — 33、JMeter察看结果树的显示模式详解

    目录 1.CSS Selector Tester视图 2.HTML查看器 (1)HTML视图 (2)HTML(download resources)视图 (3)HTML Source Formatte ...

  9. Step By Step(Lua环境)

    Step By Step(Lua环境) Lua将其所有的全局变量保存在一个常规的table中,这个table被称为"环境".它被保存在全局变量_G中.    1. 全局变量声明:  ...

  10. Docker学习(10) Docker的远程访问

    Docker的远程访问 只需配置