Vue用Axios和elementui实现查询分页
<template>
<div>
<el-input v-model="search" placeholder="请输入关键词"></el-input>
<el-table :data="tableData.slice((currentPage-1)*pageSize, currentPage*pageSize)" style="width: 100%">
<!-- 表格列 -->
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[5, 10, 20, 50]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="tableData.length">
</el-pagination>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
search: '',
currentPage: 1,
pageSize: 10,
tableData: []
};
},
watch: {
search(newSearch) {
this.fetchData(newSearch);
}
},
created() {
this.fetchData();
},
methods: {
fetchData(search = '') {
axios.get('your-api-url' + search)
.then(response => {
this.tableData = response.data; // 假设返回的数据是数组格式
})
.catch(error => {
console.error('There was an error!', error);
});
},
handleSizeChange(val) {
this.pageSize = val;
},
handleCurrentChange(val) {
this.currentPage = val;
}
}
};
</script>
这个简单的Vue代码示例展示了如何使用Axios从服务器获取数据,并使用Element UI的<el-table>
和<el-pagination>
组件实现分页功能。watch
属性用于监听search
变量的变化,并触发数据的重新加载。fetchData
方法通过Axios从服务器获取数据,并将其存储在tableData
变量中,然后根据分页数据计算当前页面的数据项。
评论已关闭