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 相关文章推荐
COM中获取JavaScript数组大小的代码
Nov 22 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
Jan 24 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
Sep 25 Javascript
JS实现的另类手风琴效果网页内容切换代码
Sep 08 Javascript
javascript手风琴下拉菜单实现代码
Nov 12 Javascript
webpack学习笔记之优化缓存、合并、懒加载
Aug 24 Javascript
使用Angular CLI进行Build(构建)和Serve详解
Mar 24 Javascript
使用typescript开发angular模块并发布npm包
Apr 19 Javascript
JS计算斐波拉切代码实例
Sep 12 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
Oct 14 Javascript
基于JS实现计算24点算法代码实例解析
Jul 23 Javascript
vue 组件基础知识总结
Jan 26 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
人大复印资料处理程序_查询篇
2006/10/09 PHP
PHP+DBM的同学录程序(4)
2006/10/09 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
用JS剩余字数计算的代码
2008/07/03 Javascript
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
[02:56]DOTA2矮人直升机 英雄基础教程
2013/11/26 DOTA
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
python2 与python3的print区别小结
2018/01/16 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
python assert的用处示例详解
2019/04/01 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
解决Python对齐文本字符串问题
2019/08/28 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
会议主持词
2014/03/17 职场文书
新品发布会主持词
2014/04/02 职场文书
咖啡店创业计划书
2014/08/15 职场文书
学生保证书格式
2015/02/27 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
python 如何用terminal输入参数
2021/05/25 Python
如何理解PHP核心特性命名空间
2021/05/28 PHP
mysql 排序失效
2022/05/20 MySQL
JS函数式编程实现XDM一
2022/06/16 Javascript
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers