vue-cli3读取本地json文件

简介: vue-cli3读取本地json文件


背景

一般前端mock数据或者数据量过大且不需要考虑安全问题,或者数据稳定不需要常做变更的场景,这些数据可以由前端进行维护,将数据转为json文件放到前端本地进行读取。

由于公司业务,需要在进入页面的时候,一次获取15万条数据用于输入框的模糊搜索,但是这样前端一次性获取如此大量的数据,直接就导致了页面崩溃,加载奇慢。

这么大量且不需要时常做变更的数据,除了放到后端,通过分页的办法进行请求,还可以采用将数据转为json文件,存到前端的本地项目里,由前端进行维护。

前端如何读取本地json文件

前端存放json文件的位置

我们的项目是通过vue-cli3创建的,vue-cli3版本脚手架对外暴露的静态文件入口是public文件夹(原来是static文件夹),这里本地json文件也应该放在这里

请求JSON数据

封装axios实例

import axios from 'axios';
const service = axios.create({
  baseURL: '', // 请求本地json文件,那么baseURL取空字符串,域名就会是项目域名
  timeout: 30000,
});
// 请求拦截
service.interceptors.request.use(
  (config) => {
    return config;
  },
  (error: any) => {
    Promise.reject(error);
  },
);
// 响应拦截
service.interceptors.response.use(
  (response: any) => {
    const res = response.data;
    return Promise.resolve(res);
  },
  (error: any) => {
    return Promise.reject(error);
  },
);
export default service;

封装请求方法

特别注意:json文件存放在public目录下,如/public/data/jsonData.json,那么在请求json数据的时候,地址千万千万千万不能写/public/data/jsonData.json,而是写/data/jsonData.json,否则会报404,因为静态资源在打包后,默认public内的文件放在项目根目录,

import $axiosJson from '@/utils/axiosJson'; // 引入封装的axios实例
// 获取本地json数据
export const getJsonDataApi = () => {
  return $axiosJson({
    url: `/data/jsonData.json`, // json文件地址
    method: 'GET',
  });
};

页面组件调用请求方法

<template>
  <div></div>
</template>
<script lang='ts'>
import { Vue, Component } from 'vue-property-decorator';
import { getJsonDataApi } from '@/api/account';
@Component({
  components: {
  },
})
export default class GetJson extends Vue {
  private jsonData: any = [];
  private created() {
    this.getBankList();
  }
  // 获取本地JSON数据
  private async getJsonData() {
    const res = await getJsonDataApi();
    this.jsonData= res;
  }
}
</script>
<style lang='scss' scoped>
</style>

文章参考:https://blog.csdn.net/reffrselom/article/details/96873428

目录
相关文章
|
2月前
|
Web App开发 JSON JavaScript
SAP UI5 应用程序小技巧 - 一键将 JSON 对象导出成本地 json 文件
SAP UI5 应用程序小技巧 - 一键将 JSON 对象导出成本地 json 文件
25 0
|
2月前
|
JSON 数据格式 开发者
什么是 JSON 文件的 Schema
什么是 JSON 文件的 Schema
96 0
|
3月前
|
XML JSON JavaScript
|
3月前
|
JSON Shell DataX
DataX定时执行json脚本文件
DataX定时执行json脚本文件
145 0
|
4月前
|
存储 JSON 关系型数据库
Pandas载入txt、csv、Excel、JSON、数据库文件讲解及实战(超详细 附源码)
Pandas载入txt、csv、Excel、JSON、数据库文件讲解及实战(超详细 附源码)
66 0
|
3月前
|
Web App开发 前端开发
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
156 0
|
2月前
|
编解码 JavaScript 前端开发
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
63 0
|
1月前
|
JSON 数据处理 API
盘点Python中4种读取JSON文件和提取JSON文件内容的方法
盘点Python中4种读取JSON文件和提取JSON文件内容的方法
317 0
|
1月前
|
存储 JSON JavaScript
Python中读写(解析)JSON文件的深入探究
Python中读写(解析)JSON文件的深入探究
34 0
|
1月前
|
JSON 数据格式 Python
python写入的json文件要格式化
要将JSON格式化后写入文件,你可以在`json.dump()`函数中使用`indent`参数来设置缩进级别。以下是一个示例: ```python import json data = {"name": "John", "age": 30, "city": "New York"} with open('data.json', 'w') as file: json.dump(data, file, indent=4) ``` 在这个示例中,我们使用`json.dump()`函数将Python对象转换为JSON格式,并将其写入到文件中。通过传递`indent=4`参数,我们设置了缩