JS将内存中的数据下载到本地(.json .txt)
原理:
- 创建一个a标签
- 为a标签设置download属性,属性值为下载的文件名(注:文件名后缀是什么,下载的文件类型就是什么,如a.json a.txt,更好的实践是可用时间戳+后缀命名)
- 将a标签的display设为none
- 将数据转为JSON格式存到二进制对象Blob的一个实例中
- 将a标签插入到页面中
- 在a标签上模拟点击事件
- 删除a标签
实践:
export default function (fileName: string, fileMsg: any) {
const elementA = document.createElement('a');
elementA.download = fileName;
elementA.style.display = 'none';
const blob = new Blob([JSON.stringify(fileMsg)]);
elementA.href = URL.createObjectURL(blob);
document.body.appendChild(elementA);
elementA.click();
document.body.removeChild(elementA);
}