vue3实习搜索功能,带有搜索按钮,点击搜索按钮根据关键字跳转页面,显示出包含关键词的信息集合;搜索框使用接口进行搜索
时间: 2023-12-15 16:05:26 浏览: 150
vue实现搜索功能
5星 · 资源好评率100%
你可以尝试以下步骤实现这个功能:
1. 创建一个带有搜索框和搜索按钮的组件。搜索框可以使用`<input>`标签或者`<el-input>`组件。
2. 当用户输入关键词时,可以使用`v-model`指令将关键词绑定到组件的数据中。
3. 当用户点击搜索按钮时,可以通过`$router.push`方法跳转到搜索结果页面,并将关键词作为参数传递。例如:
```
this.$router.push({
path: '/search',
query: { keyword: this.keyword }
})
```
4. 在搜索结果页面中,可以在`created`钩子函数中获取关键词参数,并使用接口进行搜索。例如:
```
created() {
const keyword = this.$route.query.keyword
this.search(keyword)
}
```
5. 在`search`方法中,可以使用`axios`库发送请求获取搜索结果,并将结果保存到组件的数据中。例如:
```
async search(keyword) {
const response = await axios.get('/api/search', { params: { keyword } })
this.results = response.data
}
```
6. 在模板中,可以使用`v-for`指令遍历搜索结果,并将结果渲染到页面上。例如:
```
<template>
<div>
<div>
<el-input v-model="keyword"></el-input>
<el-button @click="search">搜索</el-button>
</div>
<div v-if="results">
<div v-for="result in results" :key="result.id">{{ result.title }}</div>
</div>
</div>
</template>
```
注意事项:
1. 接口的具体实现需要根据你的后端技术栈来确定。
2. 在搜索结果页面中,如果用户刷新页面,需要重新进行搜索并渲染结果。你可以将搜索逻辑封装成一个方法,在`created`和`mounted`钩子函数中都调用一次。
阅读全文