尝试通过 Vue Axios 加载 json

Posted

技术标签:

【中文标题】尝试通过 Vue Axios 加载 json【英文标题】:Trying to load json through Vue Axios 【发布时间】:2019-08-13 20:14:48 【问题描述】:

我正在尝试从名为 blogs.jsonstatic 目录中包含一个本地 JSON 文件,其中包含大量博客。

我目前正在通过 Vue Axios 加载博客,这是我在 Nuxt JS 中包含的一个模块。

目前,从 json 文件加载博客非常好,但是在加载博客之前有明显的几毫秒延迟,我正在尝试找出一种更好的方法来加载 json 文件并填充 @ 987654324@数组列在data()

这是我当前的代码:

<script>
import PageBanner from '~/components/PageBanner';

export default 
  head: 
    title: 'Site Title: Blog',
    meta: [
       hid: 'description', name: 'description', content: 'Site description' 
    ]
  ,
  components: 
    PageBanner
  ,
  data () 
    return 
      blogs: [],
      isLoading: true
    
  ,
  created () 
    this.axios.get("/articles/blogs.json").then((response) => 
      this.blogs = response.data
      this.isLoading = false
    )
  

</script>

这很好用,但我怎样才能修改它以更快地加载 json?

【问题讨论】:

我相信你的 JSON 是本地数据,那么你不需要使用异步代码来获取数据。如果希望加载更快,可以直接用作变量。 我对 nuxt.js 不太熟悉(因为我只使用 vue.js),但您可以查看文档,尤其是此处的中间件:nuxtjs.org/guide/routing#middleware 我将如何实现这个? 你的 blogs.json 文件有多大? 【参考方案1】:

只需导入它,执行此操作,它应该可以正常工作:

<template>
    <div>
        <!-- There should be no delay -->
        blogs 
    </div>
<template>
<script>
import PageBanner from '~/components/PageBanner';

import blogsFromJson from '~/articles/blogs.json'; // Or wherever it is found

export default 
  head: 
    title: 'Site Title: Blog',
    meta: [
       hid: 'description', name: 'description', content: 'Site description' 
    ]
  ,
  components: 
    PageBanner
  ,
  data () 
    return 
      blogs: blogsFromJson, // Just set it here
      isLoading: true
    
  ,
  /* No need for this anymore
  created () 
    this.axios.get("/articles/blogs.json").then((response) => 
      this.blogs = response.data
      this.isLoading = false
    )
  
  */

</script>

【讨论】:

@RyanHolton 如果它对您有用,请将此答案标记为正确。谢谢!

以上是关于尝试通过 Vue Axios 加载 json的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 gcs json api、axios、vue3、quasar 和 node14 执行单个块可恢复上传到谷歌云存储时出现 cors 错误

如何在 Vue 中使用 axios 检索 JSON Web 令牌?

用axios.get从静态目录加载json文件。

VUE.JS 通过 webpack-simple 中的 axios 从 url 接收一个 json 文件

Vue.js怎么获取页面json数据啊 求解答(get方式) 尝试后失败了 (vue.js和axios.min.js已引用)?

Vue.js、Axios、JSon 和无刷新