vue3.0+element-ui 按需加载

本文记录了在Vue3.0中使用ElementUI遇到的兼容性问题及解决方案,包括安装babel-plugin-component、修改babel配置文件及按需加载组件的具体步骤。

记录vue3.0在使用element ui时遇到的问题及解决方案

1、根据element 官网步骤操作

安装babel-plugin-component

npm install babel-plugin-component -D

修改 .babelrc 文件 (在vue3.0里是没有 .babelrc 文件的 只有 babel-config.js文件) 将修改写入babel-config.js文件

module.exports = {
  "presets": [["es2015", { "modules": false }]],
  "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]
}

引入使用 接下来,如果你只希望引入部分组件,比如 Button 和 Select,那么需要在 main.js 中写入以下内容:

import Vue from 'vue';
import { Button, Select } from 'element-ui';
import App from './App.vue';

Vue.component(Button.name, Button);
Vue.component(Select.name, Select);
/* 或写为
 * Vue.use(Button)
 * Vue.use(Select)
 */

new Vue({
  el: '#app',
  render: h => h(App)
});
到这里官方的使用步骤就完成了 我们尝试运行项目

结果报错:

Error: Cannot find module 'babel-preset-es2015' from 'C:\Users\Administrator\Des
ktop\vueProject\vuedemo'

2、解决办法

1.安装 @babel/preset-env ;项目目录下,运行命令行:

npm i @babel/preset-env -D

2.修改 babel-config.js文件,把es2015改成 @babel/preset-env

module.exports = {
  "presets": [["@babel/preset-env", { "modules": false }]],
  "plugins": [  
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ],
    "@babel/plugin-transform-runtime"
  ]
}

再次运行项目 按需加载 成功!!!

### 使用 Vue 3.0Element-UI 构建管理后台项目 #### 创建项目结构 进入所的文件夹位置,例如 `D:\webworkspace`。通过命令行工具初始化一个新的 Vue 项目: ```bash vue create myvue3 ``` 此操作会启动交互式的配置向导,在这里可以根据具体的求来挑选适合的特性选项[^1]。 #### 安装 Element Plus 或 Element3 组件库 为了使前端界面更加美观易用,推荐安装 Element Plus 或者 Element3 来作为 UI 库的选择之一。对于 Vue 3.x 版本来说,这两个框架都能够很好地兼容和支持[^2]。 执行如下 npm 命令完成依赖包的下载: ```bash npm install element-plus --save // 或者针对特定版本 npm install @element-plus/next@latest --save ``` 接着在项目的入口文件(通常是 main.js 中),引入整个组件库或按需加载的部分模块: ```javascript import { createApp } from &#39;vue&#39; import App from &#39;./App.vue&#39; // 导入全部样式 (如果采用这种方式,则无单独导入各组件CSS) import &#39;element-plus/lib/theme-chalk/index.css&#39;; const app = createApp(App) app.use(ElementPlus).mount(&#39;#app&#39;) ``` #### 封装表单逻辑 当涉及到数据录入场景时,可以利用响应式属性控制表单项的状态。比如设置一个布尔类型的变量用于切换编辑模式下的禁用状态;另外还可以获取到 DOM 节点实例以便于后续的操作处理,像给表单赋初值等动作都可以在此基础上实现[^3]。 ```html <template> <el-form :model="formData" :disabled="formDisabled"> <!-- 表单字段 --> </el-form> </template> <script setup lang="ts"> import { ref, onMounted } from &#39;vue&#39;; import axios from &#39;axios&#39;; // 如果要发起HTTP请求的话 let formData = reactive({ name: &#39;&#39;, age: &#39;&#39; }); let formDisabled = ref(true); onMounted(() => { setTimeout(() => { formDisabled.value = false; }, 2000); // 模拟异步获取远程服务器的数据并填充至本地对象中 /*axios.get(&#39;/api/formData&#39;).then((res) => { Object.assign(formData, res.data); });*/ }); </script> ``` 以上就是基于 Vue 3.0 结合 Element-UI 进行快速搭建一套简单实用的企业级管理系统的基础流程介绍。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值