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 相关文章推荐
javascript setTimeout和setInterval 的区别
Dec 08 Javascript
jquery中ajax学习笔记3
Oct 16 Javascript
js 使用form表单select类实现级联菜单效果
Dec 19 Javascript
jQuery常见开发技巧详细整理
Jan 02 Javascript
js实现省市联动效果的简单实例
Feb 10 Javascript
轻松搞定jQuery.noConflict()
Feb 15 Javascript
bootstrapValidator表单验证插件学习
Dec 30 Javascript
老生常谈的跨域处理
Jan 11 Javascript
jquery插件开发之选项卡制作详解
Aug 30 jQuery
使用layui 渲染table数据表格的实例代码
Aug 19 Javascript
antd组件Upload实现自己上传的实现示例
Dec 18 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
Oct 12 jQuery
基于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-perl哈希算法实现(times33哈希算法)
2013/12/30 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
jquery 模式对话框终极版实现代码
2009/09/28 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
2016/07/05 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
详解Python中find()方法的使用
2015/05/18 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
2017/11/02 Python
python实现TF-IDF算法解析
2018/01/02 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
对python中各个response的使用说明
2020/03/28 Python
美国在线宠物用品商店:Entirely Pets
2017/01/01 全球购物
System.Array.CopyTo()和System.Array.Clone()有什么区别
2016/06/20 面试题
自我鉴定范文200字
2013/10/02 职场文书
俄语专业职业生涯规划
2014/02/26 职场文书
抽样调查项目计划书
2014/04/24 职场文书
班组建设经验交流材料
2014/05/12 职场文书
2015年防汛工作总结
2015/05/15 职场文书
2015年教研员工作总结
2015/05/26 职场文书
鲁冰花观后感
2015/06/10 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android