Vue 读取本地静态文件 json【2种方法及优缺点】

使用vue读取本地的静态文件。

方法一:require

格式:

var json = require('文件的相对地址');

优点:可以按照你写的顺序去执行,没有任何书写方面的局限。

缺点:当你打包的时候,它很可能被打包到 js 中去,出现这种情况基本就凉凉了。你的 js 超级大。网站基本无法访问。

解决:你的 js ,很大但是你可以把它cdn加速。这样虽然很方便,但是你的流量就会消耗的很快。【钱多无视流量】
 

方法二:ajax 

格式:

this.$ajax.get('http://localhost:80/static/map/province/anhui' +'.json')
.then( response => {
    this.json = response.data;                    
})

说明:

    1、上面的ajax的请求地址,是你的服务器地址。简单来说,你复制这个地址去浏览器可以访问到你的json数据。

    2、上面的 ajax 是 axios。我只是给它重新取了个名字 

    3、缺点是,你无法控制ajax什么时候去调用的。很可能当你需要数据的时候,即使你把上面请求的代码,放在最前面都可能不行。

    4、解决办法。如果你请求的数据只有一次一个。那么你只需要把你的渲染代码。放在ajax的回调函数里面就好了。

    5、如果你是多次请求,你可以考虑一下ajax的嵌套。  所有的渲染页面,都放在ajax里面,一定确保要渲染的时候已经获取到了数据。

总结:  
    虽然,require 来获取数据很简单,很容易被接受。但是js太大,这一个缺点就抹杀了它。推荐使用ajax。

最后为了方便大家的沟通与交流请加QQ群: 625787746

请进QQ群交流:【IT博客技术分享群①】:https://jq.qq.com/?_wv=1027&k=DceI0140

Vue3 ,可以使用 `axios` 或 `fetch` 等 HTTP 请求库来读取本地 JSON 文件。 以 `axios` 为例,首先需要安装 `axios`: ``` npm install axios --save ``` 然后在需要读取 JSON 文件的组件,引入 `axios` 并发起 GET 请求: ```javascript import axios from 'axios' export default { data() { return { jsonData: null } }, created() { axios.get('/data.json') .then(response => { this.jsonData = response.data }) .catch(error => { console.log(error) }) } } ``` 在上述例子,`data.json` 是存放在项目根目录下的本地 JSON 文件。`axios.get()` 方法返回一个 Promise 对象,可以使用 `.then()` 处理请求成功的响应结果,使用 `.catch()` 处理请求失败的情况。在成功的情况下,将响应结果赋值给组件的 `jsonData` 数据项。 需要注意的是,在开发环境下,读取本地 JSON 文件的路径为相对于开发服务器的根目录的相对路径,例如 `/data.json` 表示根目录下的 `data.json` 文件。在生产环境下,读取本地 JSON 文件需要使用绝对路径,或者将 JSON 文件打包到静态资源。 另外,还可以使用 `fetch` 发起 HTTP 请求,例如: ```javascript import jsonFile from './data.json' export default { data() { return { jsonData: null } }, created() { fetch(jsonFile) .then(response => { return response.json() }) .then(data => { this.jsonData = data }) .catch(error => { console.log(error) }) } } ``` 在上述例子,`data.json` 是通过 `import` 引入的本地 JSON 文件,使用 `fetch()` 方法发起 GET 请求,并使用 `.then()` 处理请求成功的响应结果,使用 `.catch()` 处理请求失败的情况。在成功的情况下,将响应结果赋值给组件的 `jsonData` 数据项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT博客技术分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值