vue axios 如何读取项目下的json文件

在 Vue 项目中,使用 axios 读取本地的 JSON 文件可以通过将 JSON 文件放置在 public 目录中,然后通过 axios 发起请求读取。

步骤:

  1. 将 JSON 文件放置在 public 目录下

    • Vue 项目中的 public 目录是静态资源目录,项目编译后这些文件可以通过 URL 直接访问。
    • 将你的 JSON 文件,比如 data.json,放在 public 目录中。
  2. 使用 axios 读取 JSON 文件

    • 在你的 Vue 组件中,通过 axios 发起 GET 请求来读取 JSON 文件。

示例:

假设你有一个 data.json 文件,内容如下:

bash 复制代码
{
  "name": "John Doe",
  "age": 30,
  "email": "johndoe@example.com"
}

将这个文件放在 public/data.json 目录下。

然后在 Vue 组件中,使用 axios 读取文件:

javascript 复制代码
<template>
  <div>
    <h1>User Info</h1>
    <p>Name: {{ userInfo.name }}</p>
    <p>Age: {{ userInfo.age }}</p>
    <p>Email: {{ userInfo.email }}</p>
  </div>
</template>

<script>
import axios from 'axios';

export default {
  data() {
    return {
      userInfo: {}
    };
  },
  mounted() {
    this.fetchUserData();
  },
  methods: {
    fetchUserData() {
      // 读取 public 目录下的 data.json 文件
      axios.get('/data.json')
        .then(response => {
          this.userInfo = response.data;
        })
        .catch(error => {
          console.error('Error fetching the JSON file:', error);
        });
    }
  }
};
</script>

解释:

  • 文件路径 :因为 public 目录中的文件会映射到根目录,访问 public/data.json 相当于请求 /data.json
  • axios.get('/data.json') :这是对项目根目录下的 data.json 文件发起 GET 请求的方式。

注意事项:

  • 开发环境与生产环境 :在开发环境下,Vue 开发服务器会将 public 目录的内容映射为静态文件路径。在生产环境中,构建后的静态文件也会放置在根目录中。
  • 文件位置 :确保 JSON 文件位于 public 文件夹中,否则无法通过 URL 直接访问项目文件。
相关推荐
JieE2121 小时前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法
JieE2121 小时前
LeetCode 104. 二叉树的最大深度|递归思路超详细拆解
javascript·算法
kyriewen5 小时前
我用 AI 一周写完了整个项目,上线第一天就崩了——这是我踩过最贵的 5 个坑
前端·javascript·ai编程
Larcher5 小时前
AI Loop:让AI像人一样自主完成任务的核心机制
javascript·人工智能·设计模式
默_笙5 小时前
🃏 JS 只有 8 种数据类型,但我花了 2 天才搞懂 null 和 undefined 的区别
javascript
jump_jump6 小时前
流式 HTML:从 htmx 片段装配到浏览器原生增量渲染
javascript·性能优化·前端工程化
swipe8 小时前
正则表达式入门到进阶:从表单校验到手写模板引擎
前端·javascript·面试
kyriewen8 小时前
前端错误监控最全指南:捕获 JS 异常、Promise 拒绝、资源加载失败,附上报代码
前端·javascript·监控
大家的林语冰8 小时前
ESLint 近期动态大全,新版本正式发布,antfu 大佬推荐的插件也更新了!
前端·javascript·前端工程化
胡志辉10 小时前
深入浅出 call、apply、bind
前端·javascript·后端