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>
相关推荐
一壶纱4 分钟前
uni-app 使用 uview-plus
前端
敲敲了个代码5 分钟前
从零实现一个「就地编辑」组件:深入理解 OOP 封装与复用的艺术
前端·javascript·学习·面试·前端框架
xiechao6 分钟前
函数组件 useEffect 清理函数抛错:ErrorBoundary 能捕获吗?
前端·react.js
憨逗君7 分钟前
vite学习
vue.js
南游9 分钟前
数组判断?我早不用instanceof了,现在一行代码搞定!
前端·javascript
mouseliu12 分钟前
pnpm approve-builds报错
前端
JIseven14 分钟前
app页面-锚点滚动 和 滚动自动激活菜单
前端·javascript·html
AAA阿giao19 分钟前
在你的网页中嵌入 Coze 智能客服:一步步打造专属 AI Agent
前端·javascript·人工智能
AAA阿giao20 分钟前
深入解析 OOP 考题之 EditInPlace 类:从零开始掌握面向对象编程实战
前端·javascript·dom
时720 分钟前
利用requestIdleCallback优化Dom的更新性能
前端·性能优化·typescript