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 表格分页等操作实现代码(pagedown,pageup)
Apr 11 Javascript
FileUpload上传图片(图片不变形)
Aug 05 Javascript
JSON.stringify 语法实例讲解
Mar 14 Javascript
javascript实现tab切换的四种方法
Nov 05 Javascript
AngularJS 让人爱不释手的八种功能
Mar 23 Javascript
js给table赋值的实例代码
Oct 13 Javascript
原生javascript移动端滑动banner效果
Mar 10 Javascript
vue元素实现动画过渡效果
Jul 01 Javascript
layui之select的option叠加问题的解决方法
Mar 08 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
Sep 03 Javascript
postman自定义函数实现 时间函数的思路详解
Apr 17 Javascript
express中static中间件的具体使用方法
Oct 17 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
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
Node.js异步I/O学习笔记
2014/11/04 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
小程序云开发实战小结
2018/10/25 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
使用Python导出Excel图表以及导出为图片的方法
2015/11/07 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
详解python中Numpy的属性与创建矩阵
2018/09/10 Python
Django框架封装外部函数示例
2019/05/28 Python
python实现用类读取文件数据并计算矩形面积
2020/01/18 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
Python 实现一个简单的web服务器
2021/01/03 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
销售自荐信
2013/10/22 职场文书
法学毕业生自我鉴定
2013/11/08 职场文书
班级寄语大全
2014/04/10 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
培训班开班主持词
2015/07/02 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书
2019年教师入党申请书
2019/06/27 职场文书
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers