用vue写一个从后台拿数据进行模糊搜索
时间: 2024-02-28 08:53:01 浏览: 71
好的,这是一个比较常见的场景,我可以给你提供一个简单的示例代码。假设我们要从后台获取一组数据,并且要对其中的某个字段进行模糊搜索,可以按照以下步骤进行实现:
1. 在 Vue 组件中定义一个搜索框和一个数据列表,代码如下:
```html
<template>
<div>
<input type="text" v-model="searchText" @input="search" />
<ul>
<li v-for="item in dataList" :key="item.id">{{ item.name }}</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
dataList: [], // 存放从后台获取到的数据
searchText: "", // 存放搜索框中的文本
};
},
methods: {
search() {
// 实现搜索功能的方法
},
},
};
</script>
```
2. 在 `mounted` 钩子中获取数据,代码如下:
```javascript
export default {
data() {
return {
dataList: [], // 存放从后台获取到的数据
searchText: "", // 存放搜索框中的文本
};
},
mounted() {
// 发起请求,获取数据
axios.get("/api/dataList").then((res) => {
this.dataList = res.data;
});
},
methods: {
search() {
// 实现搜索功能的方法
},
},
};
```
3. 实现搜索功能的方法。我们可以通过过滤器的方式来实现模糊搜索。代码如下:
```javascript
export default {
data() {
return {
dataList: [], // 存放从后台获取到的数据
searchText: "", // 存放搜索框中的文本
};
},
mounted() {
// 发起请求,获取数据
axios.get("/api/dataList").then((res) => {
this.dataList = res.data;
});
},
methods: {
search() {
// 过滤数据
this.dataList = this.dataList.filter((item) =>
item.name.includes(this.searchText)
);
},
},
};
```
这样,当用户在搜索框中输入文本时,就会触发 `search` 方法,对数据进行过滤,从而实现模糊搜索功能。需要注意的是,这只是一个简单的示例,实际项目中还需要考虑一些细节问题,比如如何处理请求失败、如何优化搜索性能等等。
阅读全文