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>
相关推荐
xcjbqd012 小时前
CSS中隐藏元素的多重技巧与应用场景
前端·css
Ruihong12 小时前
你的 Vue 3 <script setup>,VuReact 会编译成完整的 React 组件
vue.js·react.js·面试
chenbin___12 小时前
检查hooks依赖的工具(转自千问)
开发语言·前端·javascript·react native·react.js
阿凤2112 小时前
uniapp运行到app端怎么打开文件
android·前端·javascript·uni-app
久爱@勿忘12 小时前
vue/uniapp H5页面截图
开发语言·前端·javascript
Rabitebla13 小时前
C++类和对象(中):默认函数 + 运算符重载 + 日期类实现完整笔记
java·开发语言·javascript
渔舟小调13 小时前
P12 | 标签体系:灵活的多维标签设计与前端联动
前端
小李子呢021113 小时前
前端八股浏览器网络(2)---cookie,localStorage,sessionStorage
前端·网络
小李子呢021113 小时前
前端八股Vue---插槽
前端·javascript·vue.js
一 乐13 小时前
咖啡商城|基于springboot + vue咖啡商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·咖啡商城系统