原文章:

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. Linux Test Project(一)

    http://www.vimlinux.com/lipeng/2014/09/12/ltp/ Testing Linux, one syscall at a time. LTP是从SGI开始的,后由I ...

  2. [转载]性能测试工具 2 步解决 too many open files 的问题,让服务器支持更多连接数

    [转载]性能测试工具 2 步解决 too many open files 的问题,让服务器支持更多连接数 大话性能 · 2018年10月09日 · 最后由 大话性能 回复于 2018年10月09日 · ...

  3. 2.9. 管道和重定向ls /proc && echo suss! || echo failed. 能够提示命名是否执行成功or失败; 与上述相同效果的是: if ls /proc; then echo suss; else echo fail; fi

    2.9. 管道和重定向 批处理命令连接执行,使用 | 串联: 使用分号 ; 前面成功,则执行后面一条,否则,不执行:&& 前面失败,则后一条执行: || ls /proc && ...

  4. kubernetes架构及deployment应用(4)

    Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes 服务. 一.master节点 Master 是 Kubernetes Cluster ...

  5. Canal--服务端和客户端搭建

    服务端 源码编译 git clone https://github.com/alibaba/canal.git 用IDEA打开克隆的项目 等待maven下载完依赖后开始编译过程 依赖下载完成后,打开m ...

  6. 技术干货 | 如何在 Library 中使用/依赖 mPaaS?

    使用场景 在使用 mPaaS 框架过程中,有时需要复用模块.复用时需要按照使用 Module 依赖的方式添加模块.本文以将复用 mPaaS 扫码组件的 Module 为例进行说明. 前提条件 已按照原 ...

  7. 重新整理 .net core 实践篇—————服务与配置之间[十一二]

    前言 前面基本介绍了,官方对于asp .net core 设计配置和设计服务的框架的一些思路.看下服务和配置之间是如何联系的吧. 正文 服务: public interface ISelfServic ...

  8. node.js学习(6)创建和删除目录

    1 导入模块 fs 删除文件 # 同步 创建目录 删除目录 # 异步 创建目录

  9. clone() java 简单的复制

      Java的复制有的 deepcopy 和 shapecopy 之分,这里简单的采用shapecopy  的 clone ( ) 方法, 但是指向的是同一个对象, 关于对象的问题,这里不做展开: / ...

  10. NSight Compute 用户手册(下)

    主菜单 文件 新建项目使用"新建项目"对话框创建新的分析项目 4. Main Menu and Toolbar Information on the main menu and t ...