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的document对象和window对象详解
Dec 30 Javascript
jquery事件重复绑定的快速解决方法
Jan 03 Javascript
js获取当前时间显示在页面上并每秒刷新
Dec 24 Javascript
jQuery入门基础知识学习指南
Aug 14 Javascript
angularJS 如何读写缓冲的方法(推荐)
Aug 06 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
Nov 30 Javascript
解决给dom元素绑定click等事件无效问题的方法
Feb 17 Javascript
BetterScroll 在移动端滚动场景的应用
Sep 18 Javascript
详解如何在react中搭建d3力导向图
Jan 12 Javascript
Vue中render函数的使用方法
Jan 31 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
Mar 27 Javascript
vue实现可拖拽的dialog弹框
May 13 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 面向对象实现代码
2009/11/11 PHP
劣质的PHP代码简化
2010/02/08 PHP
PHP 5.3.1 安装包 VC9 VC6不同版本的区别是什么
2010/07/04 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
php检测文本的编码
2015/07/26 PHP
php分页查询的简单实现代码
2017/03/14 PHP
JavaScript 对象、函数和继承
2009/07/07 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
一波JavaScript日期判断脚本分享
2016/03/06 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
Python实现制度转换(货币,温度,长度)
2019/07/14 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
python中pyplot基础图标函数整理
2020/11/10 Python
python中的列表和元组区别分析
2020/12/30 Python
HTML5中微数据概述及在搜索引擎中的使用举例
2013/02/07 HTML / CSS
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
室内设计自我鉴定
2013/10/15 职场文书
国际经济贸易专业推荐信
2013/11/06 职场文书
初中数学教学反思
2014/01/16 职场文书
心理健康教育制度
2014/01/27 职场文书
综艺节目策划方案
2014/06/13 职场文书
党的群众路线教育实践活动对照检查剖析材料
2014/10/09 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
2015年高校保卫处工作总结
2015/07/23 职场文书
课改心得体会范文
2016/01/25 职场文书
MySQL图形化管理工具Navicat安装步骤
2021/12/04 MySQL
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫
Mysql中常用的join连接方式
2022/05/11 MySQL