和上一例中在前端生成表格保存一样,这次我们在前端生成JSON文件并保存,而不需要后端发起命令
安装
npm install --save file-saver
假设后端发来的数据是:
[{name: '张三',age: 19},{name: '李四',age: 20},{name: '王五',age: 21},{name: 'foo',age: 22},]
在前端
新建一个vue文件,template部分只要搞一个事件触发方法就行了,太简单不写了
JS部分
import { saveAs } from 'file-saver'export {data(){table: 'student',pick: [{name: '张三',age: 19},{name: '李四',age: 20},{name: '王五',age: 21},{name: 'foo',age: 22},]},methods: {downloadJSON(){let json = JSON.stringify(this.pick,null,2) //JSON的stringfy方法第一个传入一个js对象或者数组,第二个为自定义函数可选,第三个为生成的json的缩进 可选,一般为2let bolb = new Blob([json],{type:'application/json,charset=utf-8;'}) //创建Blob数据流对象,记得Blob的数据参数必须是数组saveAs(bolb,this.table + '.json') //保存,触发浏览器下载事件},}}
