簡體   English   中英

Inertia.js 和 Laravel:分頁狀態如何工作?

[英]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.

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