vue 使用post/get 下载导出文件操作


Posted in Javascript onAugust 07, 2020

我就废话不多说了,大家还是直接看代码吧~

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>前端项目下载导出文件</title>
	</head>
	<body>
		<script>
			
		/**
		 * post 方式 
		 * 返回:文件流
		 * 好处:可以自己修改文件名称 方便调试
		 */
	  let params ={      
			ListData : this.ListData     
		}
   	_this.$http.post(url,params,{responseType:"arraybuffer"} //必须添加项
    ).then(function(res) {
      console.log(res)
      var blob = new Blob([res.data], {type: 'application/msword;charset=utf-8'});
      var filename = "download.doc";
      var a = document.createElement('a');
      var url = window.URL.createObjectURL(blob);
      a.href = url;
      a.download = filename;
      var body = document.getElementsByTagName('body')[0];
      body.appendChild(a);
      a.click();
      body.removeChild(a);
      window.URL.revokeObjectURL(url);
		}
		
		/**
		 * get 方式
		 * 返回:文件流
		 * 好处:前台什么都不需要处理 完全后台处理
		 * 缺点:不变调试(需要确保后台接口稳定)
		 */
		let exportURL = `api/sysLog/export?content=${content}&ip=${ip}`;
   	window.open(exportURL, "_blank")
		
		</script>
	</body>
</html>

补充知识:双向数据绑定原理(三种实现方式)

大家还是看看代码吧~

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>双向数据绑定原理(三种实现方式)</title>
	</head>
	<body>
		<input type="text" id="a" />
		<span id="b"></span>
		<!--
			
			//脏检查
			我们说Angularjs(这里特指AngularJS 1.x.x版本,不代表AngularJS 2.x.x版本)双向数据绑定的技术实现是脏检查,大致的原理就是,
			Angularjs内部会维护一个序列,将所有需要监控的属性放在这个序列中,当发生某些特定事件时(注意,
			这里并不是定时的而是由某些特殊事件触发的),Angularjs会调用 $digest 方法,这个方法内部做的逻辑就是遍历所有的watcher,
			对被监控的属性做对比,对比其在方法调用前后属性值有没有发生变化,如果发生变化,则调用对应的handler。
			网上有许多剖析Angularjs双向数据绑定实现原理的文章,比如 这篇 ,再比如 这篇 ,等等。
			这种方式的缺点很明显,遍历轮训watcher是非常消耗性能的,特别是当单页的监控数量达到一个数量级的时候。
			
			//观察机制
			博主之前有一篇转载翻译的文章, Object.observe()带来的数据绑定变革 ,说的就是使用ECMAScript7中的 Object.observe 方法对对象
			(或者其属性)进行监控观察,一旦其发生变化时,将会执行相应的handler。
			这是目前监控属性数据变更最完美的一种方法,语言(浏览器)原生支持,没有什么比这个更好了。唯一的遗憾就是目前支持广度还不行,有待全面推广。
			
			//封装属性访问器
			国产mvvm框架vue.js实现数据双向绑定的原理就是属性访问器。
			它使用了ECMAScript5.1(ECMA-262)中定义的标准属性 Object.defineProperty 方法。针对国内行情,
			部分还不支持 Object.defineProperty 低级浏览器采用VBScript作了完美兼容,不像其他的mvvm框架已经逐渐放弃对低端浏览器的支持。
			
		-->
		<script>
		
			//封装属性访问器
			//Object.defineProperty(obj, prop, descriptor)
			//obj ,待修改的对象
			//prop ,带修改的属性名称
			//descriptor ,待修改属性的相关描述
			var obj = {};
			Object.defineProperty(obj,'a',{
				set:function(newVal){
					document.getElementById('a').value = newVal;
					document.getElementById('b').innerHTML = newVal;
				}
			});
			
			document.addEventListener('keyup',function(e){
				obj.a = e.target.value;
			});
			
			
		</script>
		
	</body>
</html>

以上这篇vue 使用post/get 下载导出文件操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery实现带单选按钮的表格行选中时高亮显示
Aug 01 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
Mar 04 Javascript
js判断当前页面在移动设备还是在PC端中打开
Jan 06 Javascript
基于javascript简单实现对身份证校验
Jan 25 Javascript
全面了解javascript三元运算符
Jun 27 Javascript
jquery 动态增加删除行的简单实例(推荐)
Oct 12 Javascript
详解node.js搭建代理服务器请求数据
Apr 08 Javascript
bootstrap+jQuery实现的动态进度条功能示例
May 25 jQuery
jquery实现倒计时小应用
Sep 19 jQuery
微信小程序之swiper轮播图中的图片自适应高度的方法
Apr 23 Javascript
jsonp跨域获取百度联想词的方法分析
May 13 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
Nov 15 Javascript
基于javascript的无缝滚动动画实现2
Aug 07 #Javascript
vue 在methods中调用mounted的实现操作
Aug 07 #Javascript
javascript实现图片轮换动作方法
Aug 07 #Javascript
vue style width a href动态拼接问题的解决
Aug 07 #Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
Aug 07 #Javascript
JavaScript实现与web通信的方法详解
Aug 07 #Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
Aug 07 #Javascript
You might like
PHP 危险函数全解析
2009/09/09 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
.htaccess文件保护实例讲解
2011/02/06 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
拖动table标题实现改变td的大小(css+js代码)
2013/04/16 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
JavaScript引用类型Array实例分析
2018/07/24 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
[01:02:09]Liquid vs TNC 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21
2020/07/19 DOTA
Python set集合类型操作总结
2014/11/07 Python
Python递归函数定义与用法示例
2017/06/02 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
python实现nao机器人身体躯干和腿部动作操作
2019/04/29 Python
python爬虫 正则表达式解析
2019/09/28 Python
Python使用configparser读取ini配置文件
2020/05/25 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
自主招生自荐信范文
2013/12/04 职场文书
法学研究生自我鉴定范文
2013/12/04 职场文书
黄继光的英雄事迹材料
2014/02/13 职场文书
小班评语大全
2014/05/04 职场文书
焦裕禄观后感
2015/06/03 职场文书
秋收起义观后感
2015/06/11 职场文书
小学同学聚会感言
2015/07/30 职场文书
python 提取html文本的方法
2021/05/20 Python
python 进阶学习之python装饰器小结
2021/09/04 Python
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏