我目前正在將 RTK 和 RTKQ 集成到現有專案中,并希望確保我撰寫的代碼遵循最佳實踐。從 RTK Query 檔案來看,這兩種方法似乎沒有功能差異,并且都使用了。
最初我使用鉤子命名方案直接從 Api 物件(useGetDataQuery 等)匯出單個鉤子。但是,據我所知,使用實際的端點,然后使用 useQuery()、useLazyQuery() 等......對它們來說是一種更好的方法,因為如果您碰巧更改名稱,則重寫匯出和匯入的時間會大大減少端點的名稱或您想要使用它的查詢型別。到目前為止,我所看到的唯一一件事是,特別命名的端點掛鉤似乎在我的 IDE (WebStorm) 中表現得更好。
我一直在使用端點,如下所示:
const splitApi = emptyApi.injectEndpoints({...});
export const {
getData
} = splitApi.endpoints;
// In a separate file
import { getData } from 'splitApi';
const dataQuery = getData.useQuery();
使用“use<endpoint><modifier> 方法比“<endpoints>.<endpoint>.<modifier>”方法有什么好處?我上面描述的方法有什么問題嗎?
uj5u.com熱心網友回復:
api.useGetPokemonQuery并且api.endpoints.getPokemon.useQuery實際上是完全相同的功能。但是,我們假設大多數人通常對呼叫“查詢”和“變異”鉤子感興趣,因此它們是在api物件本身上可訪問的并給出匹配的不同名稱的鉤子。
兩者都可以,但我通常會默認個人重新匯出 API 物件。我不希望“重命名端點”經常發生。
請注意,如果您正在執行api.injectEndpoints(),則回傳值是相同的 api物件,但具有更新的 TS 型別。因此,從該檔案中,您可以執行export const { useGetDataQuery } = splitApi.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/380164.html
下一篇:更新物件陣列中的值狀態
