色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實戰(zhàn)洞察。

Apollo Client 版本演進(jìn)全解讀:從 4.0 架構(gòu)重構(gòu)到 4.2 類型安全與事件驅(qū)動 Refetch

Apollo Client 版本演進(jìn)全解讀:從 4.0 架構(gòu)重構(gòu)到 4.2 類型安全與事件驅(qū)動 Refetch Apollo Client 版本演進(jìn)全解讀從 4.0 架構(gòu)重構(gòu)到 4.2 類型安全與事件驅(qū)動 Refetch【免費(fèi)下載鏈接】apollo-clientThe industry-leading GraphQL client for TypeScript, JavaScript, React, Vue, Angular, and more. Apollo Client delivers powerful caching, intuitive APIs, and comprehensive developer tools to accelerate your app development.項目地址: https://gitcode.com/gh_mirrors/ap/apollo-client這篇技術(shù)指南以倉庫根目錄的 CHANGELOG.md覆蓋 Apollo Client 2.3.2 至 4.2.12 的全部版本記錄為核心脈絡(luò)系統(tǒng)梳理 Apollo Client 4.x 系列帶來的架構(gòu)級變革框架無關(guān)核心、統(tǒng)一錯誤處理、dataState結(jié)果狀態(tài)、可插拔增量交付、classic/modern 雙簽名類型系統(tǒng)以及 4.2 全新引入的事件驅(qū)動自動 RefetchRefetchEventManager。讀完本文你將理解每個版本為什么改、改了什么、如何遷移并能直接對照倉庫源碼src/core、src/errors、src/incremental、src/local-state等驗證底層實現(xiàn)。一、CHANGELOG 覆蓋范圍與閱讀方法當(dāng)前倉庫的 CHANGELOG.md 是一份累計超過 1 萬行的完整版本歷史覆蓋從 2018 年的2.3.2到當(dāng)前最新的4.2.124.2.x 系列最新的補(bǔ)丁與次要版本當(dāng)前頭部包含類型系統(tǒng)現(xiàn)代化與事件驅(qū)動 Refetch 兩大主線4.0.0 大版本一次完整的架構(gòu)重構(gòu)文內(nèi)含獨(dú)立的Release Notes專題章節(jié)見 CHANGELOG.md 4.0.0 一節(jié)是理解現(xiàn)代 Apollo Client 設(shè)計哲學(xué)的核心材料3.x / 2.x 系列早期歷史記錄了大量緩存、ObservableQuery、fetch policy 相關(guān)的修復(fù)對排查歷史問題仍有參考價值。版本條目統(tǒng)一采用 Changesets 格式每個條目包含 PR 鏈接、提交哈希、貢獻(xiàn)者與變更說明并用### Minor Changes新特性與### Patch Changes修復(fù)分類。下文聚焦最有價值的 4.x 主線展開。二、Apollo Client 4.0一次徹底的架構(gòu)重構(gòu)4.0.0 的 Release Notes 明確將其定位為更現(xiàn)代、更高效、更類型安全的 GraphQL 客戶端體驗核心圍繞開發(fā)者體驗、包體積優(yōu)化與框架靈活性三個方向。2.1 框架無關(guān)的核心Framework-Agnostic Core4.0 將 React 功能與核心庫分離React 相關(guān)導(dǎo)出統(tǒng)一收歸apollo/client/react核心不再依賴 React。這意味著你可以在任意 JavaScript 框架中使用 Apollo Client 而不會引入 React 依賴。倉庫中 src/react/index.ts 與 src/core/ApolloClient.ts 的目錄劃分正是這一架構(gòu)的落地體現(xiàn)。2.2 更小的包體積局部狀態(tài)按需引入client指令能力改為通過LocalState類按需啟用源碼見 src/local-state/LocalState.ts不使用局部狀態(tài)時不會被打包現(xiàn)代構(gòu)建目標(biāo)轉(zhuǎn)譯目標(biāo)為since 2023, node 20, not dead充分利用現(xiàn)代 JavaScript 特性更優(yōu)的 Tree-Shakingpackage.json中規(guī)范的exports字段讓死代碼消除更徹底。2.3 統(tǒng)一錯誤處理Unified Error Handling4.0 移除了ApolloError改用一組更細(xì)粒度的錯誤類并統(tǒng)一收斂到單一的error屬性錯誤類語義CombinedGraphQLErrors服務(wù)器返回的 GraphQL 錯誤源碼見 src/errors/CombinedGraphQLErrors.tsServerError非 GraphQL 的服務(wù)器錯誤ServerParseError服務(wù)器響應(yīng)解析錯誤UnconventionalError非 Error 對象被 throw 時的包裝LinkError鏈路Link拋出的錯誤通過.is()判定這些類都提供靜態(tài).is()方法用于類型收窄網(wǎng)絡(luò)錯誤也遵循errorPolicy設(shè)置外部錯誤則原樣透傳不再包裝。遷移示例// Apollo Client 3 if (error instanceof ApolloError) { console.log(error.graphQLErrors); console.log(error.networkError); } // Apollo Client 4 import { CombinedGraphQLErrors } from apollo/client; if (CombinedGraphQLErrors.is(error)) { console.log(error.errors); // GraphQL errors } else if (error) { console.log(error.message); // Other errors }2.4 全新的dataState屬性dataState清晰標(biāo)識查詢結(jié)果的完整性是 4.0 類型系統(tǒng)的基石之一empty無數(shù)據(jù)data為undefinedpartialreturnPartialData為true時從緩存讀到的部分?jǐn)?shù)據(jù)streamingdefer查詢?nèi)栽诹魇椒祷刂械牟煌暾麛?shù)據(jù)complete完全滿足的查詢結(jié)果。const { data, dataState } useQuery(MY_QUERY); if (dataState complete) { // TypeScript 知道 data 字段是完整的 console.log(data.allFields); } else if (dataState partial) { // TypeScript 知道 data 可能缺字段 console.log(data?.someField); }2.5 可插拔的增量交付defer/stream4.0 將增量交付設(shè)計為可配置、面向未來的機(jī)制通過incrementalHandler注入。倉庫中的導(dǎo)出見 src/incremental/index.tsimport { Defer20220824Handler } from apollo/client/incremental; const client new ApolloClient({ // ... incrementalHandler: new Defer20220824Handler(), });NotImplementedHandler默認(rèn)處理器一旦使用defer直接拋出異常Defer20220824Handler支持 Apollo Router 的增量格式同時以GraphQL17Alpha2Handler別名導(dǎo)出。2.6 局部狀態(tài)管理LocalState 類client字段解析改為顯式啟用import { LocalState } from apollo/client/local-state; const client new ApolloClient({ cache, localState: new LocalState({ resolvers: { Query: { myField: () Hello World, }, }, }), });同時 resolver 的context結(jié)構(gòu)發(fā)生變化4.0 中context提供client、requestContext、phase三個字段cache改為通過client.cache獲取// Apollo Client 4 const resolver (parent, args, context, info) { const { client, requestContext, phase } context; const cache client.cache; };2.7 React 側(cè)改進(jìn)useLazyQuery重構(gòu)不再接受variables/context選項改由execute接收execute只接受variables與context禁止在渲染期間或 SSR 中調(diào)用新查詢啟動時自動取消在途查詢useMutation移除ignoreResults選項如需 fire-and-forget 直接使用client.mutateuseQuerynotifyOnNetworkStatusChange默認(rèn)改為true移除廢棄的onCompleted/onError回調(diào)新 SSR APIprerenderStatic取代舊的 SSR 函數(shù)支持 React 19 的 prerender APIimport { prerenderStatic } from apollo/client/react/ssr; const html await prerenderStatic(App /, { client, });React Compiler 支持提供apollo/client/react/compiled入口見 src/react/index.ts 中 compiled 運(yùn)行時內(nèi)置 React 17 兼容的運(yùn)行時 polyfill。2.8 Link 體系演進(jìn)全部類化創(chuàng)建函數(shù)creator function統(tǒng)一遷移為類// Apollo Client 3 import { createHttpLink, setContext } from apollo/client; const httpLink createHttpLink({ uri: /graphql }); const authLink setContext((operation, prevContext) { /*...*/ }); // Apollo Client 4 import { HttpLink, SetContextLink } from apollo/client; const httpLink new HttpLink({ uri: /graphql }); const authLink new SetContextLink((prevContext, operation) { /*...*/ });ErrorLink也同步改為單一error屬性與錯誤類.is()判定對應(yīng)倉庫 src/link/error/index.ts。2.9 遷移工具與破壞性變更清單4.0 提供自動化 codemod# 基礎(chǔ)用法 npx apollo/client-codemod-migrate-3-to-4 src # TypeScript 項目分開執(zhí)行 npx apollo/client-codemod-migrate-3-to-4 --parser ts --extensions ts src npx apollo/client-codemod-migrate-3-to-4 --parser tsx --extensions tsx srccodemod 依次處理導(dǎo)入更新React 導(dǎo)入遷往apollo/client/react→ 類型遷移遷往新的命名空間位置→ Link 更新創(chuàng)建函數(shù)轉(zhuǎn)類→ 被移除導(dǎo)出的處理遷往apollo/client/v4-migration。關(guān)鍵的破壞性變更對應(yīng)倉庫 src/core/ApolloClient.ts 的構(gòu)造函數(shù)包括安裝rxjs成為 peer dependency安裝命令為npm install apollo/client graphql rxjs構(gòu)造函數(shù)link變?yōu)楸靥畈辉匐[式創(chuàng)建HttpLinkuri/headers/credentials移除改用HttpLinkname/version移入clientAwarenessresolvers移入LocalState構(gòu)造器connectToDevTools換成devtools.enableddisableNetworkFetches更名為prioritizeCacheValues類型系統(tǒng)移除TContext、TCacheShape泛型類型遷入命名空間自定義 context 改走模塊增強(qiáng)Observable從zen-observable遷移到 RxJS轉(zhuǎn)換必須調(diào)用.pipe()使用 RxJS 操作符測試MockedProvider默認(rèn)帶真實延遲20–50ms移除createMockClient改用MockLink性能與構(gòu)建不再為現(xiàn)代特性降級轉(zhuǎn)譯、不內(nèi)置 polyfill、開發(fā)模式通過 export conditions 控制、完善的exports字段與 source maps移除的導(dǎo)出React render-prop 組件apollo/client/react/components、HOCapollo/client/react/hoc、apollo/client/react/parser、apollo/client/utilities/globals。官方建議的升級路徑先升到 3.14 收集廢棄警告 → 安裝rxjs→ 運(yùn)行 codemod → 更新ApolloClient初始化顯式HttpLink、按需LocalState→ 重寫錯誤處理 → 重點(diǎn)回歸 SSR、錯誤處理與局部狀態(tài)。三、Apollo Client 4.1增量交付與 Fragment 觀察能力增強(qiáng)4.1.0 在 4.0 基礎(chǔ)上繼續(xù)強(qiáng)化增量交付與緩存觀察 APIGraphQL17Alpha9Handler支持graphql17.0.0-alpha.9實現(xiàn)的更新版defer增量格式源碼見 src/incremental/handlers/graphql17Alpha9.ts。注意只有服務(wù)器實現(xiàn)了新版格式時才應(yīng)使用它Apollo Router 用戶應(yīng)繼續(xù)使用Defer20220824Handlerimport { GraphQL17Alpha9Handler } from apollo/client/incremental; const client new ApolloClient({ incrementalHandler: new GraphQL17Alpha9Handler(), });該處理器會把a(bǔ)ccept頭更新為multipart/mixed;incrementalSpecv0.2以請求最新格式。stream支持Defer20220824Handler與GraphQL17Alpha2Handler均可處理stream指令默認(rèn)只在最后一個 chunk 時截斷stream數(shù)組且僅當(dāng)結(jié)果攜帶 stream 信息時才使用默認(rèn)流式 merge 函數(shù)。Fragment 觀察增強(qiáng)useFragment/useSuspenseFragment/client.watchFragmentfrom支持?jǐn)?shù)組一次觀察多個實體data按索引對應(yīng)from數(shù)組from: null時結(jié)果固定為{ data: null, dataState: complete, complete: true }返回的 Observable 新增getCurrentResult()方法相同 fragment、變量與標(biāo)識符的 watch 會去重并盡量復(fù)用已有 Observable 以提升性能。緩存寫入增強(qiáng)cache.write/cache.writeQuery/client.writeQuery新增extensions選項使 GraphQL 操作的extensions在 merge 函數(shù)中可用源碼參見 src/cache 相關(guān)實現(xiàn)InMemoryCache不再過濾read函數(shù)顯式返回的undefined數(shù)組項readFragment/watchFragment/updateFragment全面支持from選項。client字段行為修正定義了read函數(shù)時不再把回退值強(qiáng)制設(shè)為null而是以existing undefined調(diào)用readLocalState在無 resolver 且緩存無法解析client字段resolvesClientField返回false時才警告并設(shè)null。四、Apollo Client 4.2雙簽名類型系統(tǒng)與事件驅(qū)動 Refetch4.2.0 是本倉庫當(dāng)前版本主線中最具革新意義的一次次要版本包含兩個重量級特性。4.14.2 classic 與 modern 雙簽名Signature Styles4.2 為方法與 hooks 引入兩種簽名風(fēng)格Classic signatures默認(rèn)與 4.2 之前完全一致保持向后兼容支持手寫 TypeScript 泛型如useSuspenseQueryMyData(...)。但官方明確建議改用TypedDocumentNode讓類型自動推斷Modern signatures自動把聲明的defaultOptions納入返回類型類型更準(zhǔn)確從文檔節(jié)點(diǎn)推斷類型不支持手動傳泛型參數(shù)傳入會產(chǎn)生類型錯誤。方法/鉤子會在DeclareDefaultOptions中聲明了任意非可選屬性時全局自動切換到 modern 簽名// apollo.d.ts import apollo/client; declare module apollo/client { namespace ApolloClient { namespace DeclareDefaultOptions { interface WatchQuery { errorPolicy: all; // 非可選 → 自動激活 modern 簽名 } } } }也可以不聲明defaultOptions、直接手動切換到 modern 簽名或聲明后手動切回 classic 用于遷移不推薦長期使用因為會導(dǎo)致類型與運(yùn)行時不一致// apollo.d.ts import apollo/client; declare module apollo/client { export interface TypeOverrides { signatureStyle: modern; // 或 classic } }4.2 defaultOptions 類型安全必須全局登記從 4.2 開始某些defaultOptions類型必須全局登記否則ApolloClient構(gòu)造會直接報 TypeScript 錯誤。可登記的鍵包括WatchQuery的errorPolicy與returnPartialData、Query與Mutate的errorPolicy。// apollo.d.ts import apollo/client; declare module apollo/client { namespace ApolloClient { namespace DeclareDefaultOptions { interface WatchQuery { errorPolicy: all; } interface Query { errorPolicy: all; } interface Mutate { errorPolicy: all; } } } }登記后useSuspenseQuery(MY_QUERY)的data類型會從TData自動變?yōu)門Data | undefined與發(fā)生錯誤時data可能為undefined的運(yùn)行時行為保持一致單次調(diào)用顯式傳errorPolicy: none又會把data收窄回TData。若同一應(yīng)用存在多個defaultOptions沖突的客戶端實例可用聯(lián)合類型放寬約束declare module apollo/client { export namespace ApolloClient { export namespace DeclareDefaultOptions { interface WatchQuery { errorPolicy?: none | all | ignore; returnPartialData?: boolean; } } } }代價是返回類型會變得更泛化把屬性設(shè)為可選errorPolicy?:等價于在聯(lián)合類型中加入 TypeScript 默認(rèn)值none。僅使用部分取值時建議聲明精確的必選聯(lián)合如errorPolicy: all | ignore以保持簽名收窄。4.3 類型安全擴(kuò)展到 mutate 與 preloadQueryclient.mutate/useMutationerrorPolicy現(xiàn)在流入結(jié)果類型對應(yīng)倉庫 src/core/types.ts 中ApolloClient.MutateResultnone→{ data: TData; error?: never }all→{ data: TData | undefined; error?: ErrorLike }ignore→{ data: TData | undefined; error?: never }。聲明DeclareDefaultOptions.Mutate.errorPolicy后hooks 與方法返回類型隨之收窄單次調(diào)用顯式傳errorPolicy可覆蓋默認(rèn)值。preloadQuery來自createQueryPreloaderDeclareDefaultOptions.WatchQuery的默認(rèn)值會正確作用于PreloadedQueryRef的 data states例如聲明errorPolicy: all后preloadQuery(QUERY)返回PreloadedQueryRefTData, TVariables, complete | streaming | empty。4.4 事件驅(qū)動自動 RefetchRefetchEventManager4.2 通過RefetchEventManager類實現(xiàn)基于事件的自動 refetch如窗口聚焦window focus與網(wǎng)絡(luò)重連。核心實現(xiàn)見 src/core/RefetchEventManager.ts內(nèi)置事件源為 src/core/refetchSources/windowFocusSource.ts 與 src/core/refetchSources/onlineSource.ts。事件 refetch 完全按需啟用構(gòu)造RefetchEventManager并傳入ApolloClient構(gòu)造函數(shù)即可激活事件監(jiān)聽import { ApolloClient, InMemoryCache, RefetchEventManager, windowFocusSource, onlineSource, } from apollo/client; const client new ApolloClient({ link, cache: new InMemoryCache(), refetchEventManager: new RefetchEventManager({ sources: { // 窗口聚焦時 refetch windowFocus: windowFocusSource, // 用戶恢復(fù)在線時 refetch online: onlineSource, }, }), });默認(rèn)情況下所有活躍查詢都會在事件觸發(fā)時 refetch查詢可逐事件關(guān)閉或整體關(guān)閉// 窗口聚焦時不 refetch但保留 online useQuery(QUERY, { refetchOn: { windowFocus: false }, }); // 關(guān)閉該查詢的所有事件驅(qū)動 refetch useQuery(OTHER_QUERY, { refetchOn: false, }); // 無條件啟用所有事件 useQuery(LIVE_DASHBOARD, { refetchOn: true, }); // 事件觸發(fā)時動態(tài)決定是否 refetch useQuery(LIVE_DASHBOARD, { refetchOn: ({ source, payload }) { if (source windowFocus) { return someCondition(payload); } return true; }, });也可以按事件配置動態(tài)回調(diào)useQuery(LIVE_DASHBOARD, { refetchOn: { windowFocus: ({ payload }) someCondition(payload), }, });per-query 按需啟用模式在defaultOptions.watchQuery.refetchOn設(shè)為false或true、回調(diào)函數(shù)再逐查詢開啟。當(dāng)defaultOptions與 per-query 的refetchOn同時提供時兩者會合并——defaultOptions的值作用于 per-query 對象未顯式配置的事件const client new ApolloClient({ link, cache, refetchEventManager: new RefetchEventManager({ sources: { windowFocus: windowFocusSource }, }), defaultOptions: { watchQuery: { refetchOn: false }, }, }); // 只有該查詢會在窗口聚焦時 refetch useQuery(DASHBOARD_QUERY, { refetchOn: { windowFocus: true } });自定義事件通過 TypeScript 模塊增強(qiáng)注冊事件名與 payload 類型再提供返回 Observable 的 source 函數(shù)發(fā)出值即事件 payloadimport { Observable } from apollo/client; import { filter } from rxjs; import { AppState, AppStateStatus, Platform } from react-native; declare module apollo/client { interface RefetchEvents { reactNativeAppStatus: AppStateStatus; } } const refetchEventManager new RefetchEventManager({ sources: { reactNativeAppStatus: () { return new Observable((observer) { const subscription AppState.addEventListener(change, (status) { observer.next(status); }); return () subscription.remove(); }).pipe( filter((status) Platform.OS ! web status active) ); }, }, });手動觸發(fā)調(diào)用emit(eventName, payload)即可命令式觸發(fā)事件 refetchrefetchEventManager.emit(reactNativeAppStatus, active);無源事件Sourceless events某個事件沒有自動檢測邏輯、只支持命令式emit時source 可聲明為true并將事件類型聲明為void以省略 payload 參數(shù)declare module apollo/client { interface RefetchEvents { userTriggered: void; } } const refetchEventManager new RefetchEventManager({ sources: { userTriggered: true }, }); refetchEventManager.emit(userTriggered);注意對未注冊 source 的事件調(diào)用emit會輸出警告并成為 no-op。自定義 handler事件觸發(fā)時默認(rèn) handler 調(diào)用client.refetchQueries({ include: active })再按各查詢的refetchOn設(shè)置過濾??舍槍δ呈录采w handler例如把所有查詢含standby都納入 refetchconst refetchEventManager new RefetchEventManager({ // ... handlers: { userTriggered: ({ client, source, payload, matchesRefetchOn }) { return client.refetchQueries({ include: all, onQueryUpdated: (observableQuery) { return matchesRefetchOn(observableQuery); }, }); }, }, });handler 必須返回RefetchQueriesResult或void返回void表示該事件跳過 refetch。此外 4.2.0 還支持通過構(gòu)造選項defaultHandler或?qū)嵗椒╯etDefaultEventHandler覆蓋默認(rèn)handler未配置 per-source handler 時兜底運(yùn)行見 src/core/RefetchEventManager.ts 中Options.defaultHandler的注釋說明。4.5 4.2.x 補(bǔ)丁版本要點(diǎn)4.2.12修復(fù)多字節(jié) UTF-8 字符被 multipart 響應(yīng)塊切分后丟失的問題PR #134004.2.11新增開發(fā)模式警告——網(wǎng)絡(luò)結(jié)果寫入緩存后回讀得到部分結(jié)果時提示通常指向merge/read函數(shù)未修復(fù)緩存缺失字段4.2.10修復(fù)optimisticResponse導(dǎo)致client.mutate返回類型意外放寬、常量類型變量導(dǎo)致returnPartialData/errorPolicy類型被放寬、modern 簽名下未知選項未被 TypeScript 攔截等問題refetch/fetchMore/useLazyQuery的execute返回類型隨errorPolicy收窄4.2.9修復(fù)變量顯式傳undefined時默認(rèn)值未在緩存讀取中生效、export查詢對導(dǎo)出變量鍵控字段的緩存更新無響應(yīng)的問題4.2.8connectToDevtools的setTimeout不再在非 Chrome/Firefox 環(huán)境觸發(fā)消除測試抖動4.2.6緩存寫入提速——僅在結(jié)果攜帶 stream 信息時才做stream檢測避免對每個寫入字段做完整 ASTvisit嵌套字段上的stream不再被視為流式字段本身4.2.5從公共入口導(dǎo)出KeyArgsFunction與RelayFieldPolicy類型4.2.4修復(fù)client.readFragment/client.readQuery忽略 options 對象中optimistic選項的問題4.2.3graphqlv17 被接納為合法 peer dependency倉庫 patches 目錄中亦包含graphql-17-alpha9的補(bǔ)丁佐證4.2.2refetch 時若掩碼masked數(shù)據(jù)與上一結(jié)果深度相等則保持引用相等4.2.1修復(fù)useLazyQuery在渲染間隔中修改pollInterval不生效的問題。五、3.x 至 2.x歷史演進(jìn)一瞥4.0 之前的歷史版本同樣記錄了大量關(guān)鍵演進(jìn)閱讀時可按需回溯3.14作為 4.0 前的過渡版本集中輸出廢棄警告是官方升級路徑的第 1 步3.8引入useFragment、useSuspenseFragment、useBackgroundQuery等 hooks 與新 SSR 能力3.6–3.7緩存、fetchMore、網(wǎng)絡(luò)狀態(tài)與 Link 鏈路的持續(xù)修復(fù)3.0InMemoryCache歸一化緩存與字段策略field policies成為主流2.x記錄了ObservableQueryTData, TVariables泛型化、QueryOptions與WatchQueryOptions分離、fetch policy 與 SSR 修復(fù)等歷史沿革。六、結(jié)語如何利用這份 CHANGELOG 指導(dǎo)開發(fā)升級前先讀 4.0.0 Release Notes 的 Breaking Changes 清單走完3.14 → 裝 rxjs → codemod → 改初始化 → 改錯誤處理 → 回歸測試的標(biāo)準(zhǔn)路徑接入 4.2 新特性事件驅(qū)動 Refetch 從 src/core/RefetchEventManager.ts 與 src/core/refetchSources 出發(fā)即可快速上手類型安全能力則對照 src/core/types.ts 與DeclareDefaultOptions的模塊增強(qiáng)模式排查存量問題按版本號在 CHANGELOG.md 中檢索對應(yīng)修復(fù)項通常能快速定位到源碼與測試如 src/core/tests做到改了什么、為什么改有據(jù)可查。從 4.0 的架構(gòu)重構(gòu)到 4.2 的類型系統(tǒng)現(xiàn)代化與事件驅(qū)動 refetchApollo Client 的演進(jìn)主線始終圍繞更小的包、更準(zhǔn)的類型、更靈活的框架適配展開——這份 CHANGELOG 既是升級手冊也是理解客戶端緩存與狀態(tài)管理的絕佳源碼級教材?!久赓M(fèi)下載鏈接】apollo-clientThe industry-leading GraphQL client for TypeScript, JavaScript, React, Vue, Angular, and more. Apollo Client delivers powerful caching, intuitive APIs, and comprehensive developer tools to accelerate your app development.項目地址: https://gitcode.com/gh_mirrors/ap/apollo-client創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
啪啪综合网| 欧美少妇大量自拍视频在线观看| 日本精品免费一区二区三区四区| 九九色精品| 午夜视频黄| 久久禁| 人妻少妇久久久| 中文字幕日韩精品久久| 日韩15p| 精吧天堂| 91操熟女视频| 五十路人妻在线| 欧美黑人猛交春色影视大全| av国产无码| 韩国三级一线观看久| 国产乱码久久久| 91天天爱| 久操视频免费观看| 欧美第一页| 久久久久亚洲精品| 中文字幕文字幕无码一区二区三区电影99| 亚洲综合图片在线| 激情文学小说一区二区| 好舒服视频| 情色五月天网| 蜜臀久久久国产| 欧美熟妇操操视频| 久操在97| 欧美91精彩| 99啪啪| 91 亚洲 欧洲| 超碰天天久久79| 欧美三级一级| 亚洲。日韩。欧美| 久热久一区二区三区| 国产熟女少妇一区| 男人的天堂.com| 97超碰热线| 69AV女优男人的天堂| 色五月婷婷网| 蜜臀99999| 校园春色综合色| 有码人妻系列| 亚洲第二页| 久久大香蕉97| 性色av网站| 午夜偷拍久久熟女| 成人丁香五月| 91新在线欧美| 人妻熟女一区二区三区在线| 91美女看B| 性色av一区二区| 精彩久久中文| 日韩熟女操逼| 大香蕉520| 麻豆人妻精品一区二区| 啊啊啊啊啊啊啊国| 亚洲熟久久| 夜夜春夜夜操| 99久久国产精品免费高潮| 日日爱99| 亚州免费啪啪视频| 丁香五月色| 久久理论字幕视频| 97超碰中文| 超碰99在线| 无码天堂| 99精品久久久久久久婷婷| 国产精品一区二区黄片| 欧洲乱码一区二区| 亚州五月| 天堂v无码免费视频| 双插性欧美一二三区| 99久久精品国产高潮| 国内毛片无码一级毛片| 亚欧美天堂在线| 久久久神马影院| 久久久久久久9| 高清国产成人无码| 久久午夜伦| 精品国产72| 超碰97人人乐| 国产欧美一级在线观看| 亚洲男人bt天堂| AV中文字幕剧情1区2区3| 中文字幕免费在线观看| 91香蕉视频在线观看免费| 亚洲国产欧美中文永久| 久久e6只有精品| 欧美九一精品久久久熟妇| 人妻少妇精品| 影音先锋国产精品| 小明看看网址| 强奸乱伦大香蕉网| 热久日综合| 精品九九九九九九| 在线播放中文字幕| 亚洲国产丝袜在线观看| 操操逼操操逼操操逼逼| 久久国产精品,久久国产| 欧美97免费| 国产操逼逼网| 久操免费电影| 久久久久久精品免费看A级| 日本少妇va7777| 日本免费二区三区| www黄片免费看com| 91老妇女| 日韩,欧美,中文在线| 久久最新视频免费观看| 午夜成人爽爽爽爽A片李冰冰| 国精精品无码一二三区水多多| 久久熟女人| 91久久久久| av在线一区二区三区| 少妇同性| 3D污黄视频在线观看| 97 国产一区| 亚洲美女av无码| 天天做天天爱| 国产无马在线| 精品久久久久黄少妇| 熟女精品日韩一区二区三区| 俺去也婷婷| 久久久9999| 91啪啪| 台湾佬大香蕉| 能看的av| 欧美亚洲| 黑人中出21连凳花野真衣| 免费人成毛片乱码| 日韩78m视频| 亚瑟国产精品久久无码| 人妻无码一区二区三区久久99| 亚洲AV噜噜狠狠网址蜜桃动漫| 久久久久9999妇女| 综合久久欧美| 超碰97人妻| 久草婷婷| 2024人人操人人摸| 久久综合九色综合欧洲98| 亚洲码和欧洲精品激情系列| 国产亚洲女v在线观看| 中文字幕精品三级久久久| 亚洲中文字幕av| 综合亚洲网| 99色悠悠| 亚洲成人福利电影免费| 97欧美| 欧美人妻色| 亚洲中文日韩欧美大香蕉视频| 久噜噜| 国产无码一二三区| 亚洲性网| 2017,超碰| 久操99| 懂色中文一区二区三区| 亚洲人精品久久久| 熟妇人妻一区二区 | 在线精品福利免费播放| 亚洲欧美综合图片| 国产青视频| 蜜桃av综合网发布| 老熟女乱伦片| 快灬快灬 一下爽蜜桃在线观看| 久久久久久夜夜夜夜夜| 久久欧美性爱视频| 婷婷干黄色| 97超级久久| 欧美综合色站| 综合五月婷婷| 人人妻人射| 亚洲男人天堂av| 亚洲drav色图| 精产国品一区二三产品| 九九久久99| 国产AV色黄看到爽| AⅤ片水多多| 国产久9| 黄呦呦在线| 99热这里都是精品| 综合欧美日本三级| 91精品国产日韩欧美综合| 天天噜| 日韩日韩日韩-国产乱码精品一区二区| 欧美激情超碰777| 91色艳| 黄片在线免费在线观看| 亚洲小电影免费涩涩成人在线高清| 天堂av最新电影网| 97 国产精品| 亚洲欧美国产中文字幕| 91 丝袜在线| 男女91| 热久久这里只有精品| 亚洲国产高清福利视频| 久久精品日韩| 人妻一区二区三区视频| 色欲天天婬色婬香WWW夜色| 怡红院久久老司机| 天天天干977| 骚妻少妇精品性色无码四色A V| 国产精品久久久久久久久久久久久久久久 | 日韩免费高清大片在线| 亚一综合久久久久久久久久| 国产精品蜜臀久久久久无码AV| 欧美激情专区| 日韩精品资源专区二区| 91av一区二区在线观看| 国内毛片无遮挡国产| 无码操逼视频一下| 超碰人人操97碰| 人人操人人操人人人操| 日本欧美韩国国产在线| 91丨豆花丨熟女| 国产综合日韩伦理| 欧美亚洲第一页| 岛国毛片手机在线观看| 国产亚州高清国产拍精| 天天欧美欧美亚洲网| 禁片 高清 在线观看视频网站| 欧美男女午夜啪啪| 国产性刺激| 鸥美精品一区二区久久婷婷| 九九国产| 全国男人天堂网| 精品久久久久综合无码| 国产精品人妻无码久久久互動交流| 色香天天| 无码精品久久久天天影视| 欧美日韩日产免费网站看| 天堂俺去俺来也www久久婷婷| 国产一级特黄大片处女| 90后性网国产欧美| 欧美A√综合网 | 日韩久久超碰色| 亚州综合AⅤ| 夜夜春夜夜操| 中文字幕乱码人妻二区三区| 国内三级自拍小视频在线观看| 亚洲天堂男人在线| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | av影片在线观看不卡| 日韩免费簧片| 亚洲国产成人精品无码专区| 青苹果影院男人的天堂| 懂色影视久久| 一区二区三区美女超清| 日韩av影片在线观看| 久久婷婷亚洲| 久久久111| 久草电影网| 热99这里有精品综合久久 | 天天做天天爱天天高潮| 午夜福利区| 少妇的嫩逼图片| 亚洲av综合伊人久久| 亚洲精品久久久久久久蜜桃臀| 欧洲中文字幕| 凹凸视频在线一区二区| 91人妻Pr| surenchaopeng| 久久精品国产亚洲粉嫩| 操逼不卡中文字幕| 噜噜噜亚洲精品| 69精品| 无码人妻丰满热妇又大又粗| 九一综合网| 在线视频免费观看午夜| 人妻丝袜无 码视频专区| 成人一级二级| 亚洲免费成人在线高清无码视频| 99中出在线| 日韩欧美女求操每天更新| 国产三级在线现体验区| 99久久久无码| 日韩在线电影| 涩五月婷婷| 男人的天堂三级| 艹少妇网站| 国产乱弄免费在线视频。| 欧美色视| 中文字幕一区 二区三四五 区日 日骚| 亚洲 中文 欧美 日韩 在线| 校园春色制服丝袜中文字亚洲| 91精品久久久久久| 久久香蕉国产线看观看猫咪av| 青青草日本中文字幕 | 国产白丝在线| 日韩中文字幕人妻视频| 久久精品中文| JULIA一区二区三区在线播放| juliaann丝袜大战黑鬼| 黄色视频60分钟| 欧美综合加勒比在线| 在线日韩日本亚洲国产| 日本一二三高清| 青娱乐淫乱1314| 欧美 亚洲 制服 精品| 黄片www视频免费| 久久欧洲| 欧美自拍偷拍免费观看| 蜜臀久久99精品久久久久久| 91亚洲不卡一区| A级在线视频| 5252色欧美在线| 日韩一级性爱无码| 久久久免费视频18| 欧插网站| 精品高清一区二区三区三州| 99999精品视频| 免费1级a做爰片观看| 91色伦| 国产精品人妻免费精品| 91精品电影18| 亚洲乱伦图片视频| 色臀AV| 五月天丁香欧洲日韩| 国产福利一区二| 久久999久| 精品在线观看视频在线| 99999国产精品| 久久久久一本一区二区青青蜜月| 美国一区二区三区视频| 日本一线产区和二线产区伦理片| 久久综合日韩亚洲欧美| 欧美v亚洲v日韩v最新在线二区 | 69精品| 欧美乱妇狂野欧美在线视频| 五月婷婷激情综合| 情趣丝袜无码操逼视频| 91热色| 中文字幕日韩综合| 成年人一级黄色毛片大全在线观看| 熟妇一区,二区,三区。| 大香蕉青青9| 五月丁香久久| 伊人久久大香线蕉无码| 思思热一热婷婷热一热| 蜜桃视频一区二区三区| 天天干,天天日| 国产自产一区视频在线| 2019天天干| 97精品97久久| 第四色亚洲色图| 狠狠操天天干| av资源在线播放天堂| 另类图片欧美激情综合| 蜜臀Av一区二区三区| 1区2区3区中文字幕日韩| 97在线精品| 乳欲人妻办公室奶水| 午夜九九九九九九| 亚洲人妻爽爽爽| 欧美在线色| 超碰国产情侣自拍网| 亚洲精品成人激情在线| 插穴性爱视频在线观看| 国产精品成久久久久午夜午夜| 免费视频观看60秒| 91青青| 精品9区| 日逼五月天| 中文字幕视频在线观看一区二区| 婷婷五月天伊人| 睡产熟女乱伦| 国产黄片在线免费观看| 26uuu性| 免费视频在线一区二区不卡| 91精品老女人| 国产无码精品成人| 久久99九九九九6666免费观看软件| 久久久久网站-538在线视频-欧美永久乱码 | 久久秀这里有精品| 天综合网| 亚洲日本加勒比在线| 无套内射性感少妇视频| 加勒比大香蕉视频在线| 亚洲综合小说另类图欧美视频激情小说色五月天 | 97在线精品| 亚卅熟女乱色| 99久久精品国产高潮| 夜间福利片1000无码| 久操网无码在线| 一区二区三区黄色片a| 无码人妻精品一区二区三区99不卡| 亚洲色欧美| 爱爱啊啊啊| 久9re热视频这里只有精品| 91亚州| 91av熟女人妻| 欧美顶级黄色大片免费| 大香蕉五月天婷婷| 欧美 亚洲 制服 精品| 女人的久久久| 欧美 综合| 亭亭在线资源| 97超碰9| 日本一级真人黄色性爱视频| 日日噜噜夜夜狠狠视频无| 国产精品嫩草影院免费| 六月丁香久久| 欧美性战999| 亚洲欧洲第二视频在线观看色图| 超碰9 7女人| 96一区二区| 人人操人人爽人人操人人| 亚洲三区视频| 色婷五月| 久久99草| 天天综合色图| 免费自拍三级综合| 91无码中出人妻视频| 欧美三级一级| 33044男人的天堂深夜备| 久久 精品| 日本欧美韩国国产在线| 97福利视频| 综合网亚| 黑人在线91| 天天干天天舔| 色优久久| 中文字幕精品久久久久人妻红杏ⅰ| 麻豆色约约| 天天做天天爱夜夜爽毛片试看| 中文字幕一区二区韩| 丁香激情五月| 九七人妻在线| 久久无码一区二区二三区性色| 日韩av在线播放不卡| 久极品在线观看| 欧美精品亚洲精品日韩传电影| 日韩97P| 天堂中文资源在线bt| 内射日韩大臀美女| 60秒不遮不挡| 成人福利视频网| 性欧美体内射精| 欧美在线电影| 精品人妻美妇91job| 1204av韩国| 美女裸体无遮挡永久免费观看网站| 日本性爱网址| 欧美猛交黑寡妇中文字幕| 九九热三级片| 性爱av网站| 欧美天堂第二区| 无码高清操逼| 熟妇亚洲一区二区三区| 婷婷五月天激情四射| 精品性爱一二三区| 欧美亚洲高清不卡| 国产多人在线观看视频| 大吊色| 国产二区三区免费视频| 色噜噜人妻av 中文字幕| 东京太热男人的天堂久久久| 一区二区娱乐网站| 天天爽入口| 蜜乳AV网址| 天天操天天7| 亚洲第一狼人丝袜美女另类| 四虎在线播放| 嫩草一区二区在线观看| 蜜臀th| 少妇3P性爱自拍| 狠色婷婷久久一区二区三区_| 一区操逼| 欧美激情色婷婷花野真衣一区二区| 国内亚洲高清无码| 青青草大香蕉在线视频| 三级特黄60分钟播放| 久久大线蕉一区| 日本三级一区二区 在线| 国产综合久久久鬼色| 国产一区自拍欧美日韩| 老司机免费视频在线91| 国产精品久久成人免费| 精品国产乱码久久久久久久| 久久久中文| 亚洲综合嫩| 色综合91| 狼狼色丁香久久婷婷综合五月| 亚洲熟女乱综合一区二区三区| 国产女人和拘做爰视频| 91精品91久久久久77777| 天天操夜夜操| 亚洲无码电影久久久| 青青草伊人久久| 国产区91柔拿会所技师| 久久97视频| 中文字暮97| 午夜亚洲国产理论秋霞| 亚洲97网站| 亚洲91少妇| 91香蕉视频在线观看免费| 久久夜精品一区二区三区| 不卡啪啪视频| 欧美福利视频啊啊啊啊| 中文字幕一区二区三区蜜桃视频| 大香蕉综合在线| 东京热一区二区中文字幕| 亚洲 欧美 小说| 7777欧美成是人在线观看| 99re在线| 亚洲九九爱| 九九九九久久久| 欧美日韩国产另类综合| 蜜臀99久久国产| 国产午夜视频| 欧美另类色图片| 成人乱人伦一区二区| 96超碰网| 国产视频小说| 日韩情色视频| 日韩中文字幕二区| 黄色一区二区秘书性感| 懂色Av| avav青青草久久夜| 福利一级版子| 日本免费一区二| 亚洲成?V人片在线观看福利| 中文人妻av高清一区| 婷婷国产精品一区二区| 97天天在线| 天天做天天爱天天爽AV| 天堂精品在线| 午夜色婷婷| 国产亚洲精品农村妇女| 国产精品人妻一区二区| 亚洲色人| 国产免费内射视频| 女人18精品一区二区三区| 怡春苑东京热| 黑丝日韩av丝袜av| 久久久不能久久久久| 开心婷婷五月| 色五月综合| 欧美自拍偷拍免费观看| 黄色区免费观看中文字幕| 强奸乱伦AV一天堂网| 99人妻| 狠狠爱夜夜| 国产一区二区精品久久久不卡蜜臀| 加勒比人妻综合| 久久超碰大香蕉| 日本999精品视频| 精品久久99| 一品道视频一区二区三区| 91日韩在线| 国产无套粉嫩白浆在| 国产第25页在线观看| 国产一级内射无挡观看| 北约熟女超碰| 特级毛片特黄久久免费看 | www.操| 亚洲aw毛茸茸在线| 美女91在线观看| 综合网亚| 男人的天堂久久狠| 中日韩久久久免费看| 亚洲人精品久久久| 草草草视频| 亚洲天天操| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 人妻美腿丝袜制服诱惑综合天堂-| 美国美女AV在线| 涩爱AV在线| 久操在97| 国产丝袜一区二区三区| 600国产精品视频| 97在线免费观看| 日本性爱视频一级| 约操熟妇| 色婷婷99| 亚洲影院小综合| 爱妻综合网| 竹菊一区二区三区AV线| 精品视频在线观看| www.91逼逼.com| 国产精品青草综合久久| 一区久久久二区| 国产青青美女玩逼视频| 91天美免费| 新亚洲无码| 免费观看国产不卡av| 婷婷久久网| 亚洲免费精品一区| 99热国产| 热思思免费视频| 亚洲一级特黄大片在线播放91| 综合一区中亚洲国产成人综合精品 | 野狼激情网| 2017大香蕉国产精品久久| 蜜臀99久久精品| 一区二区乱码福利| 日韩精品亚洲专区在线影视| 人妻碰碰碰碰碰碰| 韩国毛片一区二区三区| 97在线视频观看| 国产精品自在自拍视频| 亚洲最大的黄色电影网站。| 丝袜视频网国产90| 超清福利精品视频在线| AV电影在线播放| 都市激情人妻一区二区青青操视频 | 任你干在线视频| 亚洲色图图片| 国产AV超爽| 夜夜综合| yw尤物av无码点击进入麻豆| 无码国产精品午夜不卡(| 91日日| 蜜臀中文字幕| 日韩成人电影AV| 超碰免费欧美7| 青娱乐福利99| 天天操狠狠日夜夜干超碰撸com视频在线观看| 精品网站99999| 91爱| 精品久久99| 伊人久久亚洲色欲综合网站 | www.五月天| 久热99999| 狼狼色丁香久久婷婷综合五月| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 狠狠97| 91成人久久 | 国产三级多多影院2022国产AA一级毛片无码 | 久久草草亚洲蜜桃臀| 亚洲nv男人的天堂网| 91模特在线观看| 在线精品福利免费播放| 亚洲drav色图| 久久精品国产亚洲AV无码做| 最新中文字幕av| 日韩操p| 淫色网综合| av毛片aaaaa免费看| 亚洲精品久久久久久久久豆丁网| 春色91| 99热精品在线观看| 色五月av| 亚州操操穴网| 国产精品黑人一区二区三区| 嗯……啊…嗯嗯…啊…好舒服| 日韩在线国产字幕| 97爱欧美| 欧美性爱18观看| 日本99一区二区| 人妻 中文 日韩| 天天日熟妇| www.91色| 在线视频97| 97色色色综合网站| 亚洲欧洲精品视频发布| 蜜桃AV天堂| 亚洲人人操| 国产精品免费久久久久久久久久| 久久久久中出| www.yeyecao| 精品无码人妻一区二区免费蜜桃| 太久视频| 九久9精品| 人妻久热在线| 午夜视频好爽啊| 99这里都是精品| 久久 国产精品 一区| 欧美AB在线| 久久超碰、| 综合操逼| 欧美AB在线| 五月天综合网| 欧美综合区| 久久91| 是还免费视频1727我| 色色婷婷五月天| 91免费看一区二区三区 | 无码人妻精品一区二区三区99不卡| 日本五十路在线| 成视频在线观看免费看| 日韩性爱一级片| 九九九九九九九| 东京热男人的天堂网| 家庭乱伦国产| 国产农村妇女毛片精品久久| 日韩av三四区| 999岛国大片| 亚洲āv网址在线观看| 激情情色五月天| 中文字幕艹艹| 国产女生在线| 国产精品不卡一区二区电影| 99热这里只有精品1| 欧美久久婷| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 91精品91久久久久77777| 亚洲精品一二三四区| 亚洲蜜桃V妇女| 亚洲国产成人精品久久久国产成人一区二区 | 久久久久九九九| 欧美洲精品一级| 欧美性爱一内片一区二区三区| 五月天玖玖资源站| 欧美亚洲国产91在线| 九九九热精品| 婷婷在线视频| 久久久久亚洲?V片无码V| 黑人猛交| 2017,超碰| 欧美综合传媒| 久操网在线| 蜜臀精品1区2区| 夜夜一区二区| 久久99视频| 国产尤物AV尤物在线观看不卡| 丝袜人妻av一区二区| 久久97精品久久久久久久不卡| 狠狠做深爱婷婷久久二区| 亚洲综合在线高清| 亚洲青青青视频在线| 99在线精品观看99| 免费a在线播放v| 国产Aα| 日韩中文字幕国产| 天堂v无码免费视频| 97视频免费播放| 黑人性欧美| 老司机福利社视频在线观看| 夜夜操一区二区| 天天舔九色婷婷| 久久久久一本一区二区青青蜜月| 你操综合| 国产黄a三级三级三级av在线看| 激情五月天色色网| 国产激情久久久| 国产女人成人精品视频| 国产小u女在线观看| 日本精品不卡一二三区| 美女操逼福利视频| 欧美久久伊人| 强免费黄色网址| 熟女突然公开看18禁影片 | 亚洲涩涩| 天天日美女的B| 老女人91| 蜜臀网址在线| 欧美综合色图网| 久午视频| 久久婷婷电影网| 少妇熟女1区2区3区| 老司机天天操| 熟女人妇一区二区三区| 亚洲国产激情国产av| 久热9| 狠狠操夜夜操蜜桃视频三区| 人妻丝袜无 码视频专区| 99热综合| 国产原创精品| 乱老熟女一区二区三区| 中文字幕一区二区三四五区日日骚| 走光一区92下载| 九久久精品| 精精品人妻一区二区三区| 色九久| 国产二区三区免费视频| 久久东京伊人一本到鬼色| 青青操狠狠撩| 91neishe| 九九九九精品一区| 可乐操亚洲蜜911| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 亚欧成人综合影院| 国产亚洲精品自在线亚洲情侣| 激情第四色| 高树玛利亚无码流出| 草b在线 | 91天天看| 色色香蕉| 激情四射婷婷四五月天| 无码人妻精品一区二区三区九九 | 男男H黄动漫啪啪无遮挡网站| 天天做天天爱| 欧美国产一区二区三区麻豆传媒 | 极品极品色影院| 91最新综合| 99超碰网| 欧美一区二区三区入口| 人妻丝袜无 码视频专区| 中文字幕人妻色偷偷久久皮 | 26uuu最新| 亚洲免费人妻在| 宗合情欲网| 四虎av在线| 日日日日做夜夜夜夜无码| 欧洲色| 人妻激情在线视频| 中文字幕精品免费一区二区| 日韩无码专区| 亚洲综合贴图91| 日本潮催一卡操| 伊人AAA| 欧美视频激情久久久久久| 欧美成人色| 国产精品熟女乱伦| 91狠狠综合久久| 日本淫穴在线| 91激情| 久综合网| 视频二区熟女人妻| 操逼大黄片| 国产有码一区| 亚洲综合20p| 国产精品秘 福利姬在线观看| 亚洲自拍另类丝袜综合| 天天综合-91入口| 亚洲天堂热| 国产精品毛片| 国产精品999zyz| 91l欧美在线| 中国农村熟妇毛片视频| www.狠狠干.coom| 亚洲狠| 激情网五月天| 99999国产| 九热视频| 国产人妻久久精品一区二区三区| 91精品人妻电影| 人妻激情在线视频| 91社区拍啪人妻| 狠狠做深爱婷婷久久二区| 人人操人人插人人摸人人干| 啊啊啊97视频| 久热在线精品免费观看| 色大师网站www永久网站视频| 亚洲AV麻豆Aⅴ无码电影一| 91肏屄网| 黄色片A级一区二区三区| 不卡人妻少妇精品毛片一区23区视频| 97干色| 九一屌逼| 99在线免费公开视频| 97一区二压| 黄片com.| 国产自偷| 色婷婷影院| 99热| 91在线丝袜视频| 久久九九视频九九视频| 九九热AV| 成人影 天天操 亚洲| 国产兽交视频在线播放| 99久在线精品99re8a| 丰满少妇精品一区二区| 色五月丁香五月| 欧美性暴力| 黄色二级片网站| 无码丰满熟妇一区二区浪潮AV| 青青伊人加勒比海| 91超级碰| 网站A V在线| 91在线/欧洲| 久久98| 亚洲本色精品一区二区久久| 密臀视频一区二区三区| 亚洲成?V人片在线观看福利| 亚洲资源一区| 欧美日韩222| 人人插人人摸人人| 人妻天堂三区| 老汉网| 日本在线不卡一二区| 97超碰站| 91伊人久久在线| 夜夜嗨AV一区天天| 亚洲欧洲日韩天堂av| 欧美特黄视频网站| 青青草日逼视频| 无码精品一区二区三区潘金莲| 亚洲天堂另类| 东京成人一区| 激情小说五月天| 国产精品4p在线观看| 伊人性在线视频| 久久精品视频28| 婷婷伊人| 影音先锋视频在线| 97亚洲中文| 热热色色综合| 国产精品肉丝自拍| 亚洲aV性爱| 日本性爱视频一级| 久操国产在线| 亚州Av天美传媒| 天天综合网久久ww| 亚洲高清在线| 亚洲中文一区二区三区| 少妇高潮九九九九| 色九色久| 粉嫩小泬久久久一区二区| 98一区二区精品| 日本女人操逼| 搡老人老9丨女老熟人| 亚洲婷婷丁香在线| 婷婷人妻激情| 九九九九九九免费视频| 日han少妇无码| 性欧美另类高清| 久久久九九网站| 嫩草一区二区在线观看| 熟女激情综合网| 天天综合网网欲色| 91美| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 超碰久久精品| 99只有精品| 亚洲综合图文| 欧美精品丝袜久久久中文字幕| 日韩啪啪啪啪啪| 玖玖婷婷五月天| 欧美性爱伊人| 国产综合永久精品日韩鬼片| 最新av网站在线观看| 国产偷拍网站| 久久永久无码人妻视频| 91五十路| 亚洲毛片基地专区| 夜夜精品视频| 久久这里只有精品9| juliaann欧美丝袜办公室| 国产91丝袜 在线播放| 人妻喷水| 抽插一区二区视频| 久久久久幕乱码| com 首页 18岁 禁区 女优 免费 精选 同城 | 国产无码一二三区| 国产精品自拍欧美在线| 国产尤物AV尤物在线观看不卡| 亚洲蜜乳av| 亚乱色| 极品白嫩美女白浆成人福利在线看| 久久久久久久国产视频| 国产色精品午夜大片| 亚欧Av| 最新国产精品久久精品| 超碰在线人妻| 久久超碰久| 色婷婷在线视频精品导航| 中日无幕一二三四区| 嗯……啊…嗯嗯…啊…好舒服| 色眯眯射| julia中文字幕在线观看| 黑人精品久久97| 欧美线天码中字| 欧洲人妻视频| 熟妇乱伦一区二区| 亚洲成人在线高清| 国产成人亚洲精品无码古代早漏男| 亚洲 日韩 丝袜 熟女 变态| 国产激情在线| 殴美牲| 蜜臀99999| 97国产精品久久久久| 清纯唯美亚洲另类| 91精品国产91久久青草| 中文字幕,人妻,日韩| 久久免费精品视频免一| 日本特黄f c2| 成人热久久精品| 亚洲,欧美,综合网| 国产精品九九九| 国产精品熟女九色九色蜜臀| 国产原创剧情在线丝袜| 久妇网| 青青欧美| 啊啊啊免费视频| 国产日逼视频| 五月婷婷激情网| 青青草色情网站视频| 日本久久久久久久久久| 亚洲男人综合| 日韩无码成人电影| 亚州成人A√| 国产熟女自拍| 日韩免费一级性爱视频| 亚洲综合中文字幕有码| 天天综合AV| 果冻传媒A片一二三区 | 日韩在线AB| 久久久久九九九九九| 激情文学88| 婷婷影院入口| 91色黑人少妇| 国际精品久久久| 久久黄色性爱视频| 婷婷色一区| 国产精品3| 久久精品人人做人人看| 色色婷婷五月| 91超碰在线播放| 日韩欧美大片免费高清啪啪| 五月天色图| 黑人精品久久97| 探花精品 一区二区| 十八禁视频网站| 超碰1997| 日本爽爽爽爽爽爽免费视频| 婷色五月| 啊啊啊啊在线播放| 熟妇的味道HD中文字幕| 国产精品乱人伊人网| 国产一二三福利视频网| 日日操丁香五月天| 欧美日韩大陆黑人少妇99| 天天射夜夜操| 伊人久久88国产女| 蜜臀99久久精品久久久久久| 欧美性爱1080p| 鸥美精品一区二区久久婷婷| 97天堂| 九九九九九九九精品视频| 欧美亚洲色的图| 亚欧日韩成人| 好看的久久不射无码影视影院| 人人么人人操| 久久一区无码| 无码人妻精品酒店| 中文字幕高清20页视频| 97综合激情| 丁香五月天堂| 日本亚洲嫩草影院啪啪| 丁香五月性| 青青五月天| 亚洲激情在线| 72av视频| 丁香激情网| 男人天堂东京热| 资源在线观一 二| 日日骚中文字幕| 9久超碰| 大香蕉欧美| 歐美一級亂黃99在綫精品| 新亚洲无码| 国产性刺激| 久久久久久久伊人精品| 久久一二三四不卡| 一区二区三区黄片免费观看| 国产女人9999| 强奸a片网| 欧美熟妇色| 天天综合色电影| 18禁看网站一区| 97色欧州| 91足交| 99AV| 91久久精品国产| 熟女乱3伦999| 亚洲综合九| 天天躁日日躁XXXXYY| 肥佬影院91| 久久色一区| 亚洲天堂中文字| 舔人妻中文免费视频| www.色婷婷.com| A级在线视频| 97er欧美性| 欧美黄色片AAAAA| 五月天亚洲色图| 99国产精品免费| 亚洲第一成人影院色播| 青青在线视频日韩欧美| 超碰99热中文字幕| 性爱乱伦一区| 色欲av国内精品久久久久久| 亚洲人妻熟妇三十三区| 五月丁香社区婷婷日韩欧美精品影院| 久久久亚洲精品中文字幕人妻| 超碰久久中文| 国产成人亚洲精品无码古代早漏男| 久射吧| 青青草自拍视频在线播放| 国产黄片精品在线| 九久久九九久视频| 欧美黑人与女人91~| 岛园激情| 亚州熟女乱伦| 极品少妇久久久久| 亚熟在线| 大香蕉综合在线| 欧美日韩啪啪电影| 亚洲骚逼少妇| 男人的天堂2000| 日韩草久视频| 日韩激情中文字幕有码| 精品人妻中文字幕高清| 一区二区亚州激情久婷婷欧美| 麻豆60秒| 干婷婷综合网| 国产强奸乱伦xd| 躁躁躁日日躁2020| 亚洲日韩少妇一道本视频| 国产精品久久久亚洲一区| 国产中文精品一区二区在线观看| 四虎免费在线观看| 9.1小视频| 青青草色插素人| 91女网站| 天天综合精品| 亚洲性爱无码乱伦av| 大香蕉乱级| 蜜桃av色偷偷av老熟女| 青青草在线视频播放器| 青青草字幕AV| 99re9这里只有精品| 五月丁香啪啪啪| 色青青久久影视| 国产精品无码av嫩草| 欧美日韩大香蕉| 欧美色涩| 97在线免费看视频| 亚州黄站| 九九九久| 亚洲一区制服诱惑| 久草精品视频| 99只有精品| 加勒比综合九九99视频在线播放| 久久人人妻| 日韩人妻少妇 一区二区三区| 俺去俺来也在线www| 思思热影视| japan日本高清乱xxxx| 国产精品亚洲一级av第二区| 欧洲黄色网| 国产精品高潮呻吟av久久4虎| 少妇色| 久久久新亚洲AV| 91九九| 97碰| 国产午夜精品在线观看| 亚洲美女AV无码| 亚洲天堂精品日韩电影| 日韩精品人妻| 国产呦精品系列在线观看| 欧美亚洲91| 日韩性爱啪啪视频| 久久在线观看免费视频| 国产精品com| 午夜国产成人精品视频| 久久亚洲国产成人| 午夜乱轮操逼视频免费看| 国产成年女人免费视频播放a| 少妇一级婬片免费放一级a性色.| 国产又黄又粗的视频| 欧美激情另类一区二区| 激情网色| 怡红院一区二区熟女人妻| 色综合色综合网| 亚洲美乱| 中文字幕-区二区三区四区视频中国| 诱惑人妻欧美一区在线播放|