我的解决方案基于前端应用程序 React、redux 和 material-u 以及后端 Springboot 应用程序。
我有一个 Rest API,可以从数据库中获取大量记录。这会在 UI 上造成延迟,我想防止这种情况发生。
表格组件:
export default function Export(props) {
return (
<div>
<MaterialTable
title={<Typography variant="h6">{}</Typography>}
data={props.data}
options={{
pageSize: 50,
pageSizeOptions: [50, 100, 150],
search: true,
sorting: false,
headerStyle: {
fontWeight: "bold",
padding: "4px",
},
}}
></MaterialTable>
</div>
);
}
export const getExportByLastModifiedDate = (lastModifiedDate) => {
return async (dispatch) => {
dispatch({ type: EXPORT_BY_LASTMODIFEDDATE_START });
await axios({
method: "get",
url: "/api/export?lastModifiedDate=" + lastModifiedDate,
})
.then(function(response) {
dispatch({
type: EXPORT_BY_LASTMODIFEDDATE_SUCCESS,
payload: response.data,
});
})
.catch(function(error) {
dispatch({ type: EXPORT_BY_LASTMODIFEDDATE_ERROR, payload: error });
});
};
};
后端API:
@GetMapping("/export")
public ResponseEntity<List<ExportDto>> getExportByLastModifiedDate(@RequestParam(value = "lastModifiedDate", required = true) String lastModifiedDate) {
Optional<List<ExportDto>> optional = Optional.ofNullable(service.getExportByLastModifiedDate(lastModifiedDate));
return optional.map(response -> ResponseEntity.ok().body(response)).orElse(new ResponseEntity<>(HttpStatus.NOT_FOUND));
}
我想要做的是获取前 1000 条记录并将它们呈现给 UI,而在后端过程将继续。
我怎样才能做到这一点 ?
郎朗坤
相关分类