Electron-Vue项目使用Element的el-table组件不显示

一、前言

最近我把项目进行了整体重构,将原先的vue和electron分为两个工程文件夹的形式融合为了一个electron-vue工程文件,因为有很大的改动,特别是环境和相关配置方面与原先的工程有很大的不同,随之而来就有很多坑,这篇文章要将的就是今天碰到的element-UI一个组件重构前显示OK但重构之后显示不OK的问题,详情请继续阅读。

二、问题描述

在vue组件中,使用了Element的el-table组件,当重构了之后发现这个组件在相应页面不显示(高度为零),数据什么正常,语法OK,各种路径也OK,控制台也没报错,我花了一个上午找原因…

三、问题解析

在重构之后(electron-vue融合流),项目根目录文件夹下有一个.electron-vue文件夹,下边放着几个js配置文件(我的项目是6个js文件),具体的每个js配置文件详情请参考electron官网描述(中文的,哈哈)
另外我也浏览了Google,发现原来在vue中直接引入element的方式已经不能满足融合流的要求啦。
请打开.electron-vue文件夹下的webpack.renderer.config.js配置文件,你会找到这样一行代码,竟然需要添加白名单!对的,你没看错(不明白什么是白名单的,请自行去问度娘):
在这里插入图片描述
那么,vue都需要这样做,是不是element-ui也学要同样的操作才能正常使用呢,嘿嘿,答对了,So…

四、问题解决(附上代码)

只需要将element-ui也添加进白名单就可以啦!

// 将vue模块列为白名单
let whiteListedModules = ['vue', 'element-ui']

然后重新运行项目,再进相应页面就会发现万恶的el-table组件不显示的问题已经完美解决。

Electron + Vue环境中实现文件下载并显示进度以及以表格形式展示,你可以使用`axios`库处理HTTP请求,`vue-progressbar`组件显示进度条,`element-ui`的表格组件`el-table`展示文件信息。以下是一个基本的步骤: 1. 安装依赖: ``` npm install axios vue-progressbar element-ui @element-plus/icons ``` 2. 创建一个下载服务函数,利用axios并发下载文件: ```javascript import axios from 'axios'; async function downloadFiles(fileUrls, callback) { const promises = fileUrls.map(async (url) => { const response = await axios.get(url, { responseType: 'blob' }); return { url, name: response.name, progress: 0 }; }); let totalProgress = 0; const downloadPromises = promises.map((promise) => axios.download(promise.url, promise.name, (progressEvent) => { promise.progress = Math.round(progressEvent.loaded * 100 / progressEvent.total); totalProgress += promise.progress; updateProgressBar(totalProgress); }) ); Promise.all(downloadPromises).then(() => callback()).catch((error) => console.error(error)); } // 更新进度条的函数 function updateProgressBar(progress) { // 根据实际需求更新进度条组件的状态 } ``` 3. 使用Vue表单提交按钮触发下载,然后更新数据列表: ```html <template> <el-button type="primary" @click="downloadFiles">开始下载</el-button> <el-table :data="filesData"> <!-- 表格列配置 --> ... </el-table> </template> <script> export default { data() { return { filesData: [], }; }, methods: { downloadFiles() { this.filesData = []; downloadFiles(someFileUrls, () => { // 下载完成后填充文件数据 this.filesData = [...someFileUrls, ...this.filesData].map((url) => ({ ...url, progress })); }); }, }, }; </script> ``` 4. 显示进度条组件: ```html <template> <el-progress type="dashboard" :percentage="currentTotalProgress"></el-progress> </template> <script> export default { computed: { currentTotalProgress() { // 计算并返回当前总的下载进度百分比 }, }, }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值