invalidateQueries({ type: 'all' }) 是否会中断正在进行的请求?
围绕“invalidateQueries({ type: 'all' }) 是否会中断正在进行的请求”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明不会中断正在运行的请求,仅阻止新请求启动。
程序员面试题库第 86 页,收录第 4251–4300 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
围绕“invalidateQueries({ type: 'all' }) 是否会中断正在进行的请求”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明不会中断正在运行的请求,仅阻止新请求启动。
围绕“当多个查询共享相同的基础 key 时,invalidate 会如何影响它们”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明若子键未明确指定,则只覆盖父级匹配项。
围绕“refetch 与 invalidate 有何区别?它们各自触发的条件是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分 invalidate 仅改变状态而不请求,refetch 才真正发起请求。
围绕“在乐观更新场景下,invalidate 操作是否会影响用户看到的临时数据”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 invalidate 仅标记查询为过期,不影响已更新的本地状态。
围绕“如何通过 predicate 函数精准控制哪些查询应被无效化?请给出具体示例”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明使用函数判断 queryKey、status、variables 等字段以实现细粒度控制。
围绕“在乐观更新中,如果服务端返回错误,是否可以继续保留本地更改”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明默认不会保留,需显式处理异常并决定是否提交或回滚。
围绕“在乐观更新中,为何必须手动修改本地状态而不是依赖 query data”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 query data 仍为旧值,不能用于即时反馈,必须先更新应用状态。
围绕“当多个客户端同时进行乐观更新时,如何解决冲突”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明此类情况需由业务层处理,如版本号校验或最后写入胜出。
围绕“useMutation 与 optimisticUpdate 配合时,如何确保数据一致性”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明应在 mutate 函数内部先更新本地状态,再调用 API 并处理结果。
围绕“为何推荐使用数组而非对象作为查询键的结构?在什么情况下应选择对象”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须对比数组的确定顺序与对象键名无序带来的缓存歧义风险。
围绕“查询键中的依赖项变化是否一定导致查询重新执行?为什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释依赖项变更仅影响键值而不会自动触发查询重执行,需配合 useQuery 触发条件。
围绕“当查询键包含非序列化对象时,TanStack Query 如何处理其缓存键的生成”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释对象属性顺序和嵌套结构对键值串化的决定作用。
围绕“TanStack Query 中查询键(Query Key)的结构设计如何影响缓存命中与性能”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明数组形式查询键中不同元素类型对缓存唯一性的影响。
围绕“retry 为函数时,如何根据错误类型决定是否重试”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明返回 true 表示重试,否则跳过。
围绕“retryDelay 为 (attemptIndex) => attemptIndex * 1000 时,第 2 次”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明第 2 次重试在第一次失败后 1000 毫秒触发。
围绕“当 retryAttempts 超过最大重试次数后,query state 会变成什么状态”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明状态变为 'error'。
围绕“在某些条件下,如何让特定错误不再触发重试”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明通过 retry 函数返回 false 来跳过重试。
围绕“当查询处于“过期”但尚未失效时,再次访问是否会触发网络请求”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明此时仍返回缓存数据且不会主动发起请求,除非显式刷新或强制更新。
围绕“设置 staleTime 为 5 分钟后,查询何时开始自动刷新”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释从上次成功获取数据起算,5分钟后进入“过期”状态并可自动刷新。
围绕“当 staleTime 为 0 且 queryKey 不变时,自动刷新是否仍可能触发”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明虽然立即过期,但只有在组件重新挂载或显式调用 refetch 时才刷新。
围绕“端到端测试中如何用 Playwright 验证组件的键盘可达性与焦点顺序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 page.keyboard.press('Tab') 结合 toBeFocused 断言焦点路径的做法。
围绕“Testing Library 中 getBy、queryBy、findBy 三类查询在元素不存在时的行为差异是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确三者对缺失元素分别抛错、返回 null、异步等待的差异及各自适用断言场景。
围绕“为什么组件测试推荐用 MSW 拦截请求而不是 mock fetch 或 axios 模块”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 MSW 在网络层拦截、与业务代码解耦且请求行为更真实的优势。
围绕“用 Playwright 集成 axe-core 做可访问性扫描时如何组织断言与违规处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 AxeBuilder 扫描指定区域、按违规等级断言及对已知问题的豁免管理。
围绕“Playwright 如何用 storageState 复用登录态避免每个测试都走登录流程”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 setup project 登录一次后序列化 cookie/localStorage 供后续测试注入的模式。
围绕“Playwright Component Testing 与用 Vitest+Testing Library 跑组件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确真实浏览器渲染与 jsdom 模拟在布局、真实事件、视觉上的能力差异及选型依据。
围绕“为什么 Playwright 视觉快照要按浏览器和操作系统分开存基线,CI 上如何保证一致”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确渲染差异导致快照按项目名分目录及 CI 固定系统镜像或用容器生成基线的做法。
围绕“Playwright 中断言超时、动作超时、测试超时分别由什么配置控制,调大全局超时为何是反模式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 expect timeout、action timeout、test timeout 的分层配置及用更稳的定位替代盲等。
围绕“Playwright 如何处理浏览器原生 confirm 对话框与文件下载这两类自动化盲区”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 page.on('dialog') 预注册接受与 download 事件等待保存的两套机制。
围绕“Playwright Test 的 fixture 机制相比 beforeEach 全局初始化有哪些可组合性优势”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 fixture 按需惰性创建、自动拆毁、可组合覆盖的优势及自定义 fixture 的写法思路。
围绕“诊断 Playwright 偶发失败(flaky)测试时 trace viewer 提供了哪些关键信息”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确用 trace 的动作快照、网络与控制台时间线定位竞态与等待不足。
围绕“Playwright 推荐的 getByRole、getByLabel、getByText 等定位器各自的适用边界是”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确按用户可见语义优先的定位器选择顺序及 getByTestId 兜底场景。
围绕“Playwright 用 HAR 文件回放网络请求的适用场景与局限是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 HAR 回放适合稳定只读接口、对动态数据与写操作失效的局限。
围绕“Playwright 定位 iframe 与 Shadow DOM 内元素分别需要什么特殊处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 frameLocator 进入 iframe、CSS/text 选择器默认穿透 open shadow root 的差异。
围绕“Playwright 的 Locator 相比 CSS 选择器字符串有哪些根本性优势”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 Locator 惰性求值、自动等待与可重试断言带来的稳定性提升。
围绕“用 Playwright 网络拦截模拟接口 500 与超时两种失败时实现方式有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 500 用 fulfill 状态码、超时用 abort 或延迟结合客户端超时配置的区别。
围绕“Playwright 页面对象模式在大型端到端测试套件中解决了什么问题,如何避免页对象膨胀”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确封装定位器与交互降低重复及按用户任务而非 DOM 结构拆分对象的原则。
围绕“Playwright 的并行 worker 与分片(sharding)机制如何影响测试设计与运行速度”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确文件级并行、测试间无共享状态的前提及 CI 多分片合并报告的做法。
围绕“Playwright 的 retries 重试机制应该如何配置才能既掩盖环境抖动又不掩盖真实缺陷”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确仅 CI 重试、结合 trace 与 testInfo.retry 诊断、禁止用重试掩盖等待缺失的原则。
围绕“Playwright 的 page.route 如何拦截并修改 API 响应,与 route.fulfill、rou”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 fulfill 完全造假响应、continue 放行、fetch 后改包再 fulfill 的三档选择。
围绕“Playwright 中每个测试新建 BrowserContext 的隔离机制是什么,代价与收益如何权衡”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 context 级 cookie/存储隔离保证独立性及共享 context 的风险。
围绕“Playwright 的 toHaveScreenshot 视觉回归测试如何工作,基线图片更新流程是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确像素对比与基线快照机制、--update-snapshots 更新流程及评审要求。
围绕“Playwright 视觉对比因抗锯齿和动画产生抖动时有哪些官方手段降低误报”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 maxDiffPixelRatio 阈值、animations:'disabled'、mask 遮盖动态区域三种手段。
围绕“Playwright 中如何断言某次点击确实触发了预期请求并校验其响应体”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 waitForResponse/waitForRequest 与 click 的 Promise.all 写法避免漏抓。
围绕“Playwright 中 page.waitForSelector 与 expect(locator).toBeVi”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确前者单次等待状态、后者基于轮询的重试断言及推荐用 web-first assertions 的理由。
围绕“用 Testing Library 断言一个元素从出现到消失的完整流程应该怎么写”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确出现用 findBy、消失用 waitForElementToBeRemoved 的组合及常见误用。
围绕“jest-dom 为 Testing Library 提供了哪些 DOM 断言,为什么不用 expect 直接断言属”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 jest-dom 语义化匹配器覆盖可见性、禁用态、属性等的价值。
围绕“为什么 React Testing Library 通常不需要手动调用 cleanup 和 act”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确测试框架 afterEach 自动清理与 render/fireEvent 内部已包裹 act 的机制。
围绕“Testing Library 测试中定位查询失败有哪些官方调试手段”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 screen.debug 输出 DOM、query 失败信息的建议查询提示、Testing Playground 辅助选查询。
围绕“在 Vitest 中用 fake timers 测试防抖或定时 UI 时与 Testing Library 异步查询”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确假时钟与 waitFor 内部定时器冲突及 advanceTimersByTime、shouldAdvanceTime 的处理。