public文件夹下新建static文件夹,这个文件夹存放的我们需要下载的静态资源文件,如下图,这里我存放了一个 模板.xlsx文件,待会需要下载这个文件。当然static文件夹存放pdf文件、word文件什么的都可以的。static文件夹下也可以再建文件夹精细化存放,只要a标签下载的时候路径对得上即可,这里不赘述。

注意:这里要在public文件夹中新建文件夹存放静态资源,不能在src文件夹中新建文件夹存放静态资源,因为public文件夹中的文件资源不会被npm run build打包编译。大家打包一下,就会发现 模板.xlsx文件 是存放在dist/static文件夹中

模拟a标签下载文件即可

<Button
   icon={<DownloadOutlined />}
   onClick={frontDownload}
>
   下载模板
</Button>
const frontDownload = () => {
    var a = document.createElement('a'); //创建一个标签
    a.href = '/static/批量查询条件导入模板.xlsx'; // 给a标签的href属性值加上地址,注意,这里是绝对路径,不用加 点.
    a.download = '批量查询条件导入模板.xlsx'; //设置下载文件文件名,这里加上.xlsx指定文件类型,pdf文件就指定.fpd即可
    a.style.display = 'none'; // 障眼法藏起来a标签
    document.body.appendChild(a); // 将a标签追加到文档对象中
    a.click(); // 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
    a.remove(); // 一次性的,用完就删除a标签
};

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐