使用 JavaScript 和 Fetch API 实现搜索功能的完整例子利用vue2,并将数据以表格的形式渲染到页面上
时间: 2024-04-17 09:23:39 浏览: 148
当使用 Vue 2 实现搜索功能时,可以利用 Vue 的双向数据绑定和组件化开发的特性。以下是一个完整的例子,使用 JavaScript、Vue 2 和 Fetch API 实现搜索功能,并将数据以表格的形式渲染到页面上:
```html
<!DOCTYPE html>
<html>
<head>
<title>搜索功能示例</title>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model="keyword" placeholder="请输入搜索关键词">
<button @click="performSearch">搜索</button>
<table>
<thead>
<tr>
<th>ID</th>
<th>名称</th>
<th>价格</th>
</tr>
</thead>
<tbody>
<tr v-for="item in searchResults" :key="item.id">
<td>{{ item.id }}</td>
<td>{{ item.name }}</td>
<td>{{ item.price }}</td>
</tr>
</tbody>
</table>
</div>
<script>
new Vue({
el: '#app',
data() {
return {
keyword: '',
searchResults: []
}
},
methods: {
performSearch() {
const url = `/api/search?keyword=${encodeURIComponent(this.keyword)}`;
fetch(url)
.then(response => response.json())
.then(data => {
this.searchResults = data;
})
.catch(error => {
console.error('Error:', error);
});
}
}
});
</script>
</body>
</html>
```
在这个例子中,我们引入了 Vue.js,并在 HTML 中创建了一个 Vue 实例,绑定到 id 为 "app" 的元素上。
在 Vue 实例的 `data` 选项中,我们定义了 `keyword` 和 `searchResults` 两个属性。`keyword` 用于绑定搜索框的输入值,`searchResults` 用于存储搜索结果。
在 Vue 实例的 `methods` 选项中,我们定义了 `performSearch` 方法。该方法会在用户点击搜索按钮时触发。在方法内部,我们构建请求 URL,并使用 Fetch API 发送 GET 请求到后端的搜索接口。在接收到后端返回的数据后,我们将数据赋值给 `searchResults` 属性,通过 Vue 的双向数据绑定,页面上的表格会自动更新。
这个例子使用了 Vue 的模板语法,通过 `v-model` 实现了搜索框和 `keyword` 数据的双向绑定,通过 `v-for` 实现了遍历 `searchResults` 数据并渲染到表格中。
请确保将 `/api/search` 替换为实际的后端搜索接口 URL,并确保后端返回的数据结构与前端代码中使用的数据结构一致。
这只是一个简单的示例,实际项目中可能还需要考虑输入防抖、分页、错误处理等其他方面的逻辑。另外,还可以通过组件化开发,将搜索框和搜索结果表格封装成单独的组件,以提高代码的可维护性和复用性。
阅读全文