Vue動(dòng)態(tài)引用json數(shù)據(jù)的兩種方式
1. 將 JSON 文件放在合適的位置
通常會(huì)將 JSON 文件放在 public 或 src/assets 目錄下:
- 如果放在
public文件夾中,可以通過(guò)相對(duì)路徑直接訪問(wèn)。 - 如果放在
src/assets文件夾中,需要通過(guò)import引入。
2. 引用 JSON 文件的方式
方式一:使用 import 引入(推薦)
假設(shè)你的 JSON 文件名為 data.json,內(nèi)容如下:
[
{ "id": 1, "name": "Alice" },
{ "id": 2, "name": "Bob" },
{ "id": 3, "name": "Charlie" }
]
步驟:
- 將
data.json放在src/assets文件夾中。 - 在 Vue 組件中通過(guò)
import引入并使用。
代碼示例:
<template>
<div>
<h3>JSON 數(shù)據(jù)列表</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 數(shù)據(jù)綁定到組件的 data 中
};
},
};
</script>
說(shuō)明:
@是 Webpack 的別名,表示src文件夾。- JSON 文件會(huì)被自動(dòng)解析為 JavaScript 對(duì)象或數(shù)組。
方式二:通過(guò) fetch 或 axios 動(dòng)態(tài)加載
如果 JSON 文件放在 public 文件夾中,可以使用 fetch 或 axios 動(dòng)態(tài)加載。
步驟:
- 將
data.json放在public文件夾中。 - 使用
fetch或axios加載 JSON 文件。
代碼示例:
<template>
<div>
<h3>JSON 數(shù)據(jù)列表</h3>
<ul>
<li v-for="item in jsonData" :key="item.id">
{{ item.name }}
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
jsonData: [], // 初始化為空數(shù)組
};
},
mounted() {
// 使用 fetch 加載 JSON 文件
fetch('/data.json') // public 文件夾下的文件可以直接通過(guò)根路徑訪問(wèn)
.then((response) => response.json())
.then((data) => {
this.jsonData = data; // 將數(shù)據(jù)賦值給 jsonData
})
.catch((error) => {
console.error('加載 JSON 文件失敗:', error);
});
},
};
</script>
說(shuō)明:
public文件夾中的文件不會(huì)被 Webpack 處理,而是直接復(fù)制到構(gòu)建目錄中,因此可以通過(guò)根路徑訪問(wèn)。- 如果使用
axios,代碼類似,只需將fetch替換為axios.get。
3. 總結(jié)兩種方式的適用場(chǎng)景
import方式:- 適用于靜態(tài)數(shù)據(jù),數(shù)據(jù)在編譯時(shí)確定。
- 數(shù)據(jù)會(huì)被打包進(jìn)最終的 JavaScript 文件中。
fetch或axios方式:- 適用于動(dòng)態(tài)加載的數(shù)據(jù),或者 JSON 文件較大、不需要每次都加載的情況。
- 數(shù)據(jù)不會(huì)被打包進(jìn) JavaScript 文件中,而是運(yùn)行時(shí)從服務(wù)器加載。
根據(jù)你的需求選擇合適的方式!
到此這篇關(guān)于Vue動(dòng)態(tài)引用json數(shù)據(jù)的兩種方式的文章就介紹到這了,更多相關(guān)Vue引用json數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3結(jié)合ts從零實(shí)現(xiàn)vueuse的useRouteQuery方法
這篇文章主要為大家詳細(xì)介紹了如何使用vue3與ts從零實(shí)現(xiàn)一個(gè)類vueuse的useRouteQuery方法,并解決vueuse的useRouteQuery方法存在的一些問(wèn)題,感興趣的可以了解下2024-03-03
Vue3項(xiàng)目中reset.scss模板使用導(dǎo)入
這篇文章主要為大家介紹了Vue3項(xiàng)目中reset.scss模板使用導(dǎo)入示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
vue導(dǎo)入excel文件,vue導(dǎo)入多個(gè)sheets的方式
這篇文章主要介紹了vue導(dǎo)入excel文件,vue導(dǎo)入多個(gè)sheets的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
Vue vxe-table使用問(wèn)題收錄小結(jié)
這篇文章主要為大家介紹了Vue vxe-table使用問(wèn)題收錄小結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
VUE和Antv G6實(shí)現(xiàn)在線拓?fù)鋱D編輯操作
這篇文章主要介紹了VUE和Antv G6實(shí)現(xiàn)在線拓?fù)鋱D編輯操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
Vue中v-html圖片過(guò)大導(dǎo)致溢出的問(wèn)題及解決
這篇文章主要介紹了Vue中v-html圖片過(guò)大導(dǎo)致溢出的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
vue-router 控制路由權(quán)限的實(shí)現(xiàn)
這篇文章主要介紹了vue-router 控制路由權(quán)限的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Vue.set()和this.$set()使用和區(qū)別
我們發(fā)現(xiàn)Vue.set()和this.$set()這兩個(gè)api的實(shí)現(xiàn)原理基本一模一樣,那么Vue.set()和this.$set()的區(qū)別是什么,本文詳細(xì)的介紹一下,感興趣的可以了解一下2021-06-06

