Vue动态引用json数据的两种方式

 更新时间:2025年04月01日 08:31:58   作者:还是大剑师兰特  
在 Vue 项目中引用 JSON 文件非常简单,尤其是当文件内容是一个数组时,本文给大家介绍了Vue动态引用json数据的两种方式,并有相关的代码示例供大家参考,需要的朋友可以参考下

1. 将 JSON 文件放在合适的位置

通常会将 JSON 文件放在 public 或 src/assets 目录下:

  • 如果放在 public 文件夹中,可以通过相对路径直接访问。
  • 如果放在 src/assets 文件夹中,需要通过 import 引入。

2. 引用 JSON 文件的方式

方式一:使用 import 引入(推荐)

假设你的 JSON 文件名为 data.json,内容如下:

[
  { "id": 1, "name": "Alice" },
  { "id": 2, "name": "Bob" },
  { "id": 3, "name": "Charlie" }
]

步骤:

  • 将 data.json 放在 src/assets 文件夹中。
  • 在 Vue 组件中通过 import 引入并使用。

代码示例:

<template>
  <div>
    <h3>JSON 数据列表</h3>
    <ul>
      <li v-for="item in jsonData" :key="item.id">
        {{ item.name }}
      </li>
    </ul>
  </div>
</template>

<script>
// 引入 JSON 文件
import jsonData from '@/assets/data.json';

export default {
  data() {
    return {
      jsonData, // 将 JSON 数据绑定到组件的 data 中
    };
  },
};
</script>

说明:

  • @ 是 Webpack 的别名,表示 src 文件夹。
  • JSON 文件会被自动解析为 JavaScript 对象或数组。

方式二:通过 fetch 或 axios 动态加载

如果 JSON 文件放在 public 文件夹中,可以使用 fetch 或 axios 动态加载。

步骤:

  • 将 data.json 放在 public 文件夹中。
  • 使用 fetch 或 axios 加载 JSON 文件。

代码示例:

<template>
  <div>
    <h3>JSON 数据列表</h3>
    <ul>
      <li v-for="item in jsonData" :key="item.id">
        {{ item.name }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      jsonData: [], // 初始化为空数组
    };
  },
  mounted() {
    // 使用 fetch 加载 JSON 文件
    fetch('/data.json') // public 文件夹下的文件可以直接通过根路径访问
      .then((response) => response.json())
      .then((data) => {
        this.jsonData = data; // 将数据赋值给 jsonData
      })
      .catch((error) => {
        console.error('加载 JSON 文件失败:', error);
      });
  },
};
</script>

说明:

  • public 文件夹中的文件不会被 Webpack 处理,而是直接复制到构建目录中,因此可以通过根路径访问。
  • 如果使用 axios,代码类似,只需将 fetch 替换为 axios.get

3. 总结两种方式的适用场景

  • import 方式
    • 适用于静态数据,数据在编译时确定。
    • 数据会被打包进最终的 JavaScript 文件中。
  • fetch 或 axios 方式
    • 适用于动态加载的数据,或者 JSON 文件较大、不需要每次都加载的情况。
    • 数据不会被打包进 JavaScript 文件中,而是运行时从服务器加载。

根据你的需求选择合适的方式!

到此这篇关于Vue动态引用json数据的两种方式的文章就介绍到这了,更多相关Vue引用json数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue高级用法实例教程之动态组件

    Vue高级用法实例教程之动态组件

    让多个组件使用同一个挂载点,并动态切换,这就是动态组件,下面这篇文章主要给大家介绍了关于Vue高级用法实例教程之动态组件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • antd 表格列宽自适应方法以及错误处理操作

    antd 表格列宽自适应方法以及错误处理操作

    这篇文章主要介绍了antd 表格列宽自适应方法以及错误处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 创建vue报错vue-cli Failed to download repo vuejs-templates/webpack问题

    创建vue报错vue-cli Failed to download repo&n

    通过vue-cli创建Vue项目时,若遇到连接超时错误,可采用离线方式解决,具体操作是下载并解压vue-templates/webpack到本地.vue-templates目录,再使用--offline参数重新执行初始化命令
    2024-09-09
  • vue init失败简单解决方法(终极版)

    vue init失败简单解决方法(终极版)

    这篇文章主要介绍了vue init失败的简单解决方法-终极版,需要的朋友可以参考下
    2017-12-12
  • vue-cli3使用mock数据的方法分析

    vue-cli3使用mock数据的方法分析

    这篇文章主要介绍了vue-cli3使用mock数据的方法,结合实例形式分析了vue-cli3使用mock数据的相关实现方法与操作注意事项,需要的朋友可以参考下
    2020-03-03
  • Echart图表在项目中的前后端使用详解

    Echart图表在项目中的前后端使用详解

    图表在我们的项目中可以帮我们很明确的看到我们想要看到的数据,本文将主要介绍Echart图表在项目中前后端使用的详细教程,感兴趣的同学可以学习一下
    2021-11-11
  • 深入理解与使用keep-alive(配合router-view缓存整个路由页面)

    深入理解与使用keep-alive(配合router-view缓存整个路由页面)

    这篇文章主要介绍了深入理解与使用keep-alive(配合router-view缓存整个路由页面),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Vue实现弹出框点击空白页弹框消失效果

    Vue实现弹出框点击空白页弹框消失效果

    这篇文章主要介绍了VUE实现弹出框点击空白页弹框消失,实现方法可以在Vue中实现弹出框然后通过点击空白页面来让弹窗隐藏,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • vue简单封装axios插件和接口的统一管理操作示例

    vue简单封装axios插件和接口的统一管理操作示例

    这篇文章主要介绍了vue简单封装axios插件和接口的统一管理操作,结合具体实例形式分析了vue中axios插件安装、配置及接口统一管理具体操作技巧,需要的朋友可以参考下
    2020-02-02
  • vue3 源码解读之 time slicing的使用方法

    vue3 源码解读之 time slicing的使用方法

    这篇文章主要介绍了vue3 源码解读之 time slicing的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10

最新评论