原文章:

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. R语言执行脚本的几种命令

    R CMD BATCH 和 Rscript 使用前都要先添加环境变量 把 C:\Program Files\R\R-3.3.0\bin; 加到"系统变量"的Path 值的最开始 可 ...

  2. 强哥CSS学习笔记

    html嵌套css样式:1.外部(推荐)2.内部3.内联(不推荐) css优先级1.内联2.id选择器3.class选择器4.标签 css长度单位:1.px2.em (14px) css选择器:常用选 ...

  3. K8S的资源管理

    K8S的资源管理 管理K8S资源的三种基本方法: 陈述式资源管理方法-使用cli工具进行管理. 声明式资源管理方式-主要依耐资源配置清单. GUI式资源管理方法-主要依耐图形界面. 陈述式资源管理方法 ...

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

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

  5. Linux硬件与服务

    Linux硬件与服务 Linux Linux硬件与服务 1 Linux磁盘管理与磁盘结构 磁盘的组成结构 盘片的逻辑结构 分区格式化 实例说明: 2 磁盘管理之Block.iNode. super.s ...

  6. cron 任务的典型格式是: 分钟(0-59) 小时(0-24) 日(1-31) 月(1-12) 星期(0-6) 要执行的命令

    https://linux.cn/article-9687-1.html Cron 是您可以在任何类 Unix 操作系统中找到的最有用的实用程序之一.它用于安排命令在特定时间执行.这些预定的命令或任务 ...

  7. 049.Python前端javascript

    一 JavaScript概述 1.1 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名Script ...

  8. DOCKER学习_018:Docker-Compose文件简介

    Docker-Compose文件 通过之前的示例,其实我们可以看到,所有服务的管理,都是依靠docker-compose.yml文件来实现的.那么我们接下来就详细说一说docker-compose.y ...

  9. getaddrinfo()函数详解-(转自 cxz2009)

    1. 概述IPv4中使用gethostbyname()函数完成主机名到地址解析,这个函数仅仅支持IPv4,且不允许调用者指定所需地址类型的任何信息,返回的结构只包含了用于存储IPv4地址的空间.IPv ...

  10. jenkins部署vue项目

    一.新建自由风格的项目 二.配置项目 三.部分部署脚本 #!/bin/bashecho $PATHnpm config set proxy nullnpm config set https-proxy ...