vue整个页面可以拖拽导入文件

效果图

原理与源码

我们这里的思路是用ant组件库的upload组件,就是如下这个

用这个包裹住所有页面,你可以是包裹住App.vue,或者是你的homepage。但是这个涉及到一个问题,就是我们现在确实是可以拖拽导进来文件了,但是同时页面随便一点,也会触发这个导入文件的对话框,而我们并不想触发这个,也就是我们的最终目的,是包裹住整个页面后,只可以拖拽,不可以点击。

但是ant仿佛并没有提供类似click方法,无法重写覆盖,于是这里我们使用了事件冒泡的机制。阻止了上层要素的click事件,于是完美解决。

改造成我们所需的,就是这样

javascript 复制代码
      <a-upload-dragger
          name="file"
          action=""
          :showUploadList=false
          @drop="handleDrop"
          :before-upload="beforeUpload"
          style="height: 100%;width: 100%;"
      >
        <!-- 阻止upload组件的click事件 -->
        <div onclick="event.stopPropagation()">
        	<!-- 你的页面 -->
         </div>
      </a-upload-dragger>
相关推荐
hhcccchh15 分钟前
学习vue第十三天 Vue3组件深入指南:组件的艺术与科学
javascript·vue.js·学习
@PHARAOH19 分钟前
WHAT - Vercel react-best-practices 系列(二)
前端·javascript·react.js
qq_4061761419 分钟前
深入理解 JavaScript 闭包:从原理到实战避坑
开发语言·前端·javascript
float_六七24 分钟前
JavaScript变量声明:var的奥秘
开发语言·前端·javascript
zhengxianyi51529 分钟前
ruoyi-vue-pro本地环境搭建(超级详细,带异常处理)
前端·vue.js·前后端分离·ruoyi-vue-pro
桃子叔叔42 分钟前
react-wavesurfer录音组件1:从需求到组件一次说清楚
前端·react.js·前端框架
陈随易44 分钟前
聊一聊2025年用AI的思考与总结
前端·后端·程序员
@PHARAOH1 小时前
WHAT - React startTransition vs setTimeout vs debounce
前端·react.js·前端框架
研☆香1 小时前
JavaScript 特点介绍
开发语言·javascript·ecmascript
绝美焦栖1 小时前
低版本pdfjs升级
前端·javascript·vue.js