Vue動態(tài)引用json數(shù)據(jù)的兩種方式
1. 將 JSON 文件放在合適的位置
通常會將 JSON 文件放在 public
或 src/assets
目錄下:
- 如果放在
public
文件夾中,可以通過相對路徑直接訪問。 - 如果放在
src/assets
文件夾中,需要通過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 組件中通過
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>
說明:
@
是 Webpack 的別名,表示src
文件夾。- JSON 文件會被自動解析為 JavaScript 對象或數(shù)組。
方式二:通過 fetch 或 axios 動態(tài)加載
如果 JSON 文件放在 public
文件夾中,可以使用 fetch
或 axios
動態(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 文件夾下的文件可以直接通過根路徑訪問 .then((response) => response.json()) .then((data) => { this.jsonData = data; // 將數(shù)據(jù)賦值給 jsonData }) .catch((error) => { console.error('加載 JSON 文件失敗:', error); }); }, }; </script>
說明:
public
文件夾中的文件不會被 Webpack 處理,而是直接復(fù)制到構(gòu)建目錄中,因此可以通過根路徑訪問。- 如果使用
axios
,代碼類似,只需將fetch
替換為axios.get
。
3. 總結(jié)兩種方式的適用場景
import
方式:- 適用于靜態(tài)數(shù)據(jù),數(shù)據(jù)在編譯時確定。
- 數(shù)據(jù)會被打包進(jìn)最終的 JavaScript 文件中。
fetch
或axios
方式:- 適用于動態(tài)加載的數(shù)據(jù),或者 JSON 文件較大、不需要每次都加載的情況。
- 數(shù)據(jù)不會被打包進(jìn) JavaScript 文件中,而是運(yùn)行時從服務(wù)器加載。
根據(jù)你的需求選擇合適的方式!
到此這篇關(guān)于Vue動態(tài)引用json數(shù)據(jù)的兩種方式的文章就介紹到這了,更多相關(guān)Vue引用json數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
創(chuàng)建vue報錯vue-cli Failed to download repo&n
通過vue-cli創(chuàng)建Vue項目時,若遇到連接超時錯誤,可采用離線方式解決,具體操作是下載并解壓vue-templates/webpack到本地.vue-templates目錄,再使用--offline參數(shù)重新執(zhí)行初始化命令2024-09-09vue-cli3使用mock數(shù)據(jù)的方法分析
這篇文章主要介紹了vue-cli3使用mock數(shù)據(jù)的方法,結(jié)合實例形式分析了vue-cli3使用mock數(shù)據(jù)的相關(guān)實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2020-03-03深入理解與使用keep-alive(配合router-view緩存整個路由頁面)
這篇文章主要介紹了深入理解與使用keep-alive(配合router-view緩存整個路由頁面),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09vue簡單封裝axios插件和接口的統(tǒng)一管理操作示例
這篇文章主要介紹了vue簡單封裝axios插件和接口的統(tǒng)一管理操作,結(jié)合具體實例形式分析了vue中axios插件安裝、配置及接口統(tǒng)一管理具體操作技巧,需要的朋友可以參考下2020-02-02