09. tháng 2 2025
Việc tải lịch sử và hiển thị nó ở giao diện người dùng thông qua chức năng kéo xuống vô hạn là một tình huống rất trang cá cược bóng đá phổ biến trong phát triển ứng dụng. Gần đây, tôi đã làm việc với Vant (một thư viện thành phần Vue nhẹ nhàng và đáng tin cậy dành cho thiết bị di động), và nhận thấy rằng việc thực hiện tính năng này cực kỳ đơn giản.
<div id="app" v-cloak>
<van-list
v-model="loading"
:finished="finished"
finished-text="Không còn dữ liệu để hiển thị"
@load="load_more_items"
>
<van-cell
v-for="item [làm đại lý](/blog/high-speed-on-may-day-encounter-a-traffic-jam-experience-the-inferno/) in items"
:key="item.id"
:title="item.name"
:value="item.created_at"
/>
</van-list>
</div>
new Vue({
el: '#app',
data: {
items: [],
finished: false,
loading: false,
offset: 0,
page: 0,
limit: 10,
},
mounted() {
this.fetch_items();
},
methods: {
load_more_items() {
this.page += 1;
this.offset = this.limit * this.page;
this.fetch_items();
},
fetch_items() {
const that = this;
$.ajax({
url: `/api/get_items?offset=${this.offset}&limit=${this.limit}`,
type: 'get',
dataType: 'json',
success(data) {
that.loading = false; [nạp tiền bằng sms](https://www.xpgdc.com)
if (data.data.length > 0) {
that.items.push(...data.data);
} else {
that.finished = true;
}
},
});
},
},
});
<van-list>
được sử dụng để tạo danh sách có thể cuộn xuống tự động khi người dùng kéo đến cuối trang.v-model="loading"
theo dõi trạng thái tải dữ liệu từ máy chủ.:finished
được đặt thành true
, danh sách sẽ ngừng tải thêm dữ liệu và hiển thị thông báo "Không còn dữ liệu để hiển thị".fetch_items
chịu trách nhiệm gọi API và cập nhật dữ liệu vào mảng items
.load_more_items
sẽ tăng số trang (page
) lên và yêu cầu thêm dữ liệu từ máy chủ.Cách tiếp cận này không chỉ tối ưu hóa hiệu suất mà còn mang lại trải nghiệm người dùng mượt mà hơn nhờ khả năng tải nội dung dần dần thay vì tải toàn bộ dữ liệu ngay từ đầu.