[英]Inertia.js and Laravel: How does pagination state work?
我正在使用演示應用 PingCRM 來了解 Inertia.js 的工作原理。
當用戶單擊主菜單項(例如組織或聯系人)時,XHR 會按預期發送到相應的 URL,即/organizations
或/contacts
。 如果我使用頁面底部的分頁鏈接,它們會按預期發送諸如/contacts?page=1
、 /contacts?page=2
請求。
如果我離開該部分,然后導航回來,服務器會以某種方式知道我在哪個頁面上,並返回一個重定向。 例如,如果我正在瀏覽/contacts?page=3
,那么我選擇主菜單項 Organizations,它會請求/organizations
(如預期的那樣)。 但是,當我接下來選擇“聯系人”時,它會發送一個/contacts
(如預期的那樣),但會收到一個位置設置為/contacts?page=3
的 302。
這個功能是如何工作的? Laravel 會話是否存儲了我的狀態,這是 Inertia 后端適配器的一部分嗎? 還是狀態存儲在瀏覽器中並通過cookie傳遞給服務器? 我在哪里可以在 Intertia.js 文檔中找到有關此內容的詳細信息? (本地狀態部分似乎更多地與瀏覽器歷史相關)。
我注意到過濾組織時存在類似的情況。 如果您在使用過濾器時離開頁面,然后返回頁面,對/organizations
的請求會收到 302,位置為/organizations?search=abc
。
找到答案了...
這些路由附加了一個中間件,它“記住”了查詢字符串。 當請求進入這些路由之一時,如果它沒有查詢字符串並且之前“記住”了一個查詢字符串,則會將其添加到路由中並向客戶端發送重定向。
代碼在類Reinink\\RememberQueryStrings
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.