Cách đổi giá trị query ở router next.js

58 lượt xem

profile picture

Ẩn danh

Ngày 18 Tháng 05

e định làm chức năng sort một số danh mục trong list. E muốn làm sao để khi refresh page hoặc nhấn quay lại trong page thì vẫn duy trì sorting trong list. trong giá trị url query thì e muốn để ?fitler="được xem nhiều nhất" nhưng ko biết là trong next.js có cách nào để thay đổi mỗi query của url ko ạ?

Đánh giá câu hỏi ngay!

Hãy ấn Up Vote với những câu hỏi cụ thể và chi tiết

Hãy ấn Down Vote với những câu hỏi chưa rõ ràng Careerly sẽ nhắc người hỏi chỉnh sửa lại.

2 câu trả lời

BEST

Ảnh đại diện của TrungQuanDev

Anh chưa hiểu lắm về đoạn em đang muốn là "next.js có cách nào để thay đổi mỗi query của url" là như thế nào. - Nhưng về phần sort hay filter cho một trang list nào đó, thì cách chuẩn và phổ biến nhất a có thể chia sẻ tới em đó là khi em Filter hoặc Sort bất kỳ cái gì, em sẽ đẩy nó vào Query String của URL và xử lý để thêm luôn vào phần gọi api tới BE, lúc này em có thể mở F12 lên kiểm tra Tab Network phần gọi API sẽ có Payload chính là các giá trị em muốn Filter hoặc Sort, sau đó phía BE sẽ xử lý Query vào Database rồi trả về kết quả đúng như mong muốn của em. - Ví dụ em có ?fitler=most_viewed&sort=earliest chẳng hạn, thì khi em f5 - refresh trang của em, hoặc đi ra trang khác rồi Back lại thì URL của em vẫn giữ giá trị như trên, đồng nghĩa việc gọi API vẫn sẽ có Payload như vậy => Kết quả sẽ đúng hay nói cách khác giống em đó là duy trì được kết quả ^^

Ảnh đại diện của Hieu Pham

Tùy vào lượng dữ liệu mà bạn cần load, có nhiều cách để làm nhưng ý tưởng chung là xoay quanh việc cần giữ các kết quả mà bạn đã thực hiện ở page không bị mất đi sau khi reload nên có thể có nhiều cách, tùy vào việc bạn cần gì, một vài ý tưởng dưới có thể giúp bạn: - Lưu kết quả hoặc gì đó liên quan vào đường dẫn, cách này thì F5 sẽ không gặp vấn đề gì tuy nhiên khi back lại thì còn tùy - Lưu kết quả vào redux/localstorage/sessionstorage... cách này thì nhìn chung là nhanh, tiện, không cần gọi request nhiều lần tuy nhiên cần handle việc xóa dữ liệu cẩn thận cũng như yêu cầu bảo mật của dữ liệu có cao không... - Cách nữa là làm theo ý tưởng của Stateful app, lưu trạng thái của user lên trên server, khi load trang thì gọi API lên đọc về, cách này nhìn chung là "tốn kém", tuy nhiên khá ổn nếu dữ liệu quan trọng.

Đăng ký ngay bây giờ để đọc toàn bộ câu trả lời!

Cộng đồng lập trình viên sẽ giải đáp tường tận cho bạn.

Xem thêm

Đồng ý với Điều khoản dịch vụ Chính sách bảo mật của Careerly

Bạn đã có tài khoản rồi?

Đăng ký ngay bây giờ để đọc toàn bộ câu trả lời!

Cộng đồng lập trình viên sẽ giải đáp tường tận cho bạn.