簡體   English   中英

vue過濾應該使用REST API還是url參數

[英]Should vue filtering use REST API or url parameters

I'm designing a website with a REST API using Django Rest Framework and Vue for the front end and I'm trying to work out what the proper way to do filtering is.

據我所知,我可以:-

a) 允許通過 API 使用 URL 參數(如 /?foo=bar)進行過濾

或者

b) 通過僅顯示返回的具有 foo=bar 的項目在 Vue 端進行所有過濾

是否有任何強有力的理由來做一個而不是另一個?

這個問題的真正答案是“視情況而定”。

這里有幾個問題要問自己,以幫助確定最佳方法是什么:

如果我不在 API 級別過濾,會返回多少數據?

如果您只返回幾條記錄,則查詢運行時不會對性能造成明顯影響。 如果您返回數千,您可能需要考慮服務器端查詢/分頁。

如果您正在構建一個數據量會隨着時間增長的應用程序,那么最好從一開始就構建服務器端查詢。

我希望前端體驗是什么樣的?

對於返回少量數據的 API 調用,如果您預先返回所有記錄並進行客戶端過濾,用戶體驗將更加靈敏。 這樣,如果用戶更改過濾器或單擊分頁數據,UI 幾乎可以立即更新。

任何其他應用程序會使用我的 API 嗎?

如果您計划構建使用 API 的其他應用程序,您可能希望在 API 級別構建過濾,因此您無需在每個使用應用程序中重新創建前端過濾邏輯。

希望這些問題可以幫助您為您的用例找到最佳答案。

每當我遇到這個問題時,我都會問自己一個問題:你正在處理多少個項目? 如果您只從 API 返回幾個項目,您可以輕松地在前端進行過濾,並在過濾結果時為自己節省一堆請求。 此外,如果結果集非常小,這樣做比每次過濾器更改時都發送請求要快得多。

但是,如果您正在處理大量項目,最好在 API 中將它們過濾掉,或者甚至通過數據庫查詢(如果您正在使用的話)。 這將使您免於將大量結果返回到前端。 此外,在前端過濾大量項目會顯着影響性能,因為它通常涉及對集合進行循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM