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 验证表单(form)中的单选(radio)值
Sep 08 Javascript
jquery validate poshytip 自定义样式
Nov 26 Javascript
jQuery中noconflict函数的实现原理分解
Feb 03 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
Jul 29 Javascript
jQuery解析json格式数据简单实例
Jan 22 Javascript
深入理解JS addLoadEvent函数
May 20 Javascript
JavaScript 中对象的深拷贝
Dec 04 Javascript
分享Bootstrap简单表格、表单、登录页面
Aug 04 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
Dec 14 Javascript
vue.js 获取select中的value实例
Mar 01 Javascript
Vue组件间的通信pubsub-js实现步骤解析
Mar 11 Javascript
JS删除对象中某一属性案例详解
Sep 08 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
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
php的XML文件解释类应用实例
2014/09/22 PHP
php常用文件操作函数汇总
2014/11/22 PHP
php获取访问者IP地址汇总
2015/04/24 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
表单的一些基本用法与技巧
2006/07/15 Javascript
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
2012/03/10 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
详解Vue.js在页面加载时执行某个方法
2018/11/20 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
JS实现TITLE悬停长久显示效果完整示例
2020/02/11 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
2020/09/08 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
王纯业的Python学习笔记 下载
2007/02/10 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
python语言是免费还是收费的?
2020/06/15 Python
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
2013/04/24 面试题
党员自我评议对照检查材料
2014/09/27 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
大学生党性分析材料
2014/12/19 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书
2015中秋祝酒词
2015/08/12 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python