我让 chatgpt 给了我一段 『vue3 axios demo代码』
<template>
<div>
<h1>Vue3 Axios Demo</h1>
<button @click="fetchData">Fetch Data</button>
<ul>
<li v-for="item in data" :key="item.id">{{ item.title }}</li>
</ul>
</div>
</template>
<script>
import axios from 'axios';
import { reactive } from 'vue';
export default {
setup() {
const state = reactive({
data: [],
});
const fetchData = async () => {
const response = await axios.get('https://jsonplaceholder.typicode.com/posts');
state.data = response.data;
};
return {
fetchData,
data: state.data,
};
},
};
</script>
而且 chatgpt 说,响应数据会显示在页面上
但是这个响应的数据,不会显示在页面上,需要做什么修改?
这样写或者这样写也可以:
setup注意点:
由于在执行 setup函数的时候,还没有执行 Created 生命周期方法,所以在 setup 函数中,无法使用 data 和 methods 的变量和方法