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 相关文章推荐
解析使用js判断只能输入数字、字母等验证的方法(总结)
May 14 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
Aug 08 Javascript
JavaScript中prototype为对象添加属性的误区介绍
Oct 15 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
Sep 23 Javascript
JavaScript数组Array对象增加和删除元素方法总结
Jan 20 Javascript
JavaScript里实用的原生API汇总
May 14 Javascript
微信小程序 仿猫眼实现实例代码
Mar 14 Javascript
javascript定时器取消定时器及优化方法
Jul 08 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
Sep 21 Javascript
详解javascript void(0)
Jul 13 Javascript
关于小程序优化的一些建议(小结)
Dec 10 Javascript
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
基于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计算两个文件相对路径的方法
2015/03/14 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
php面试中关于面向对象的相关问题
2019/02/13 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
Array.prototype 的泛型应用分析
2010/04/30 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
2018/03/06 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
2019/06/11 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
2019/07/06 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
python__new__内置静态方法使用解析
2020/01/07 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
银行职业规划书范文
2013/12/28 职场文书
区三好学生主要事迹
2014/01/30 职场文书
超市中秋节活动方案
2014/02/12 职场文书
实习评语大全
2014/04/26 职场文书
霸气队列口号
2014/06/18 职场文书
小学生毕业评语
2014/12/26 职场文书
酒店员工手册范本
2015/05/14 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
Python 数据可视化之Bokeh详解
2021/11/02 Python