vue.js - 如何在 Vue 3 中获取数据?
问题描述
我不知道如何使用 Vue 3 获取数据?我创建了一个操作,并通过此操作调用端点(https://api.openbrewerydb.org/breweries/5494)。我没有得到响应数据。
端点:
import { createStore } from 'vuex'
export default createStore({
state: {
},
mutations: {
},
actions: {
async getData() {
await fetch('https://api.openbrewerydb.org/breweries/5494', {
method: 'get',
headers: { 'Content-type': 'application/json' },
}).then((response) => {
if (!response.ok) {
throw Error(response.statusText);
}
console.log('response: ', response)
}).catch((error) => {
console.log('Looks like there was a problem: \n', error);
});
}
},
modules: {
}
})
Vue组件:
<template>
<div @click="loadData">Load Data</div>
</template>
<script>
import { useStore } from 'vuex'
export default {
name: 'HelloWorld',
props: {
msg: String
},
setup () {
const store = useStore()
const loadData = () => {
store.dispatch('getData')
}
return { loadData }
}
}
</script>
作为回应,我什么也没得到,但我应该得到:
{"id":5494,"name":"MadTree Brewing","brewery_type":"regional","street":"3301 Madison Rd","address_2":null,"address_3":null,"city":"Cincinnati","state":"Ohio","county_province":null,"postal_code":"45209-1132","country":"United States","longitude":"-84.4239715","latitude":"39.1563725","phone":"5138368733","website_url":"http://www.madtreebrewing.com","updated_at":"2018-08-24T15:44:22.281Z","created_at":"2018-07-24T01:34:01.620Z"}
解决方案
您需要将数据转换为 json
.then(res=>res.json())
这将为您解决问题。
const getData = () => {
fetch('https://api.openbrewerydb.org/breweries/5494', {
headers: { 'Content-type': 'application/json' },
}).then(res=>res.json()).then((response) => {
console.log({ response })
}).catch((error) => {
console.log('Looks like there was a problem: \n', error);
});
}
getData();
如果响应失败,它肯定会让你抓住。
推荐阅读
- django - 我如何使用 Django 序列化程序来扁平化多对多关系
- javascript - DOMException:无法在“文档”上执行“querySelectorAll”:“.u28suggest li:first a”不是有效的选择器
- sql - 在存储过程中传递 \ 输入参数
- python - 测试多列的训练数据框
- gentics-mesh - Gentics Mesh 内容节点功能
- ios - SwiftUI 条码不显示
- java - 如何使用 docker-compose.yaml 在气流容器中安装 java
- elasticsearch - 按字段对结果进行分组并对其进行排序
- javascript - Vue中的组件结构
- docker - 使用 Docker Image 和 Docker Compose 将 Cordapp 容器化