vue3前端拿到搜索框后端接口的数据为什么渲染不上去
时间: 2024-02-12 18:02:58 浏览: 92
可能是因为您没有正确地将后端接口返回的数据绑定到 Vue3 实例的数据属性上。在 Vue3 中,您可以使用 `setup()` 函数来初始化 Vue3 实例的数据属性和方法,例如:
```javascript
import { reactive } from 'vue'
export default {
setup() {
const state = reactive({
searchData: []
})
const search = async (keyword) => {
const res = await fetch(`/api/search?keyword=${keyword}`)
const data = await res.json()
state.searchData = data
}
return {
state,
search
}
}
}
```
在这个例子中,我们使用 `reactive()` 函数创建了一个响应式的 `state` 对象,并将其返回到 Vue3 实例中。我们还定义了一个 `search()` 方法来从后端接口获取数据,并将数据赋值给 `state.searchData` 属性。在模板中,您可以使用 `state.searchData` 属性来渲染搜索结果:
```html
<template>
<div>
<input type="text" v-model="keyword" />
<button @click="search(keyword)">Search</button>
<ul>
<li v-for="item in state.searchData" :key="item.id">{{ item.title }}</li>
</ul>
</div>
</template>
```
这样,当用户在搜索框中输入关键词并点击搜索按钮时,Vue3 实例会调用 `search()` 方法,获取后端接口数据并将其赋值给 `state.searchData` 属性。模板中的 `v-for` 指令将遍历 `state.searchData` 数组,并将每个元素的 `title` 属性渲染为一个列表项。如果您仍然遇到问题,请提供更多的细节和代码示例,以便更好地帮助您解决问题。
阅读全文