React 文件输入为什么不能像文本框一样用 value 控制,怎样读取文件?
React 文件输入为什么不能像文本框一样用 value 控制,怎样读取文件? 本文先给出可直接复述的结论,再用最小代码说明React file input 非受控读取文件的工作方式、判断依据、项目边界和常见误区。
程序员面试题库第 69 页,收录第 3401–3450 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
React 文件输入为什么不能像文本框一样用 value 控制,怎样读取文件? 本文先给出可直接复述的结论,再用最小代码说明React file input 非受控读取文件的工作方式、判断依据、项目边界和常见误区。
React 表单提交成功后,受控与非受控表单各自该如何重置? 本文先给出可直接复述的结论,再用最小代码说明React 表单 重置 form.reset key 重挂载的工作方式、判断依据、项目边界和常见误区。
React 表单里哪些值不应该放进 state,如何避免冗余状态导致的不一致? 本文先给出可直接复述的结论,再用最小代码说明React 表单 state 派生值 冗余状态的工作方式、判断依据、项目边界和常见误区。
React 表单的校验应该在输入时、失焦时还是提交时触发,如何为不同字段选择时机? 本文先给出可直接复述的结论,再用最小代码说明React 表单校验 触发时机 onBlur onChange的工作方式、判断依据、项目边界和常见误区。
React 非受控表单在提交时如何一次性读取所有字段的值? 本文先给出可直接复述的结论,再用最小代码说明React 非受控表单 FormData onSubmit 读取的工作方式、判断依据、项目边界和常见误区。
为什么给 React 组件换一个 key 能重置它的内部状态,代价是什么? 本文先给出可直接复述的结论,再用最小代码说明React key 重挂载 重置状态的工作方式、判断依据、项目边界和常见误区。
React 什么时候需要提升状态,和 Context 怎么配合? 本文先给出可直接复述的结论,再用最小代码说明React 状态提升的判断条件的工作方式、判断依据、项目边界和常见误区。
当 React 组件有头部、主体、底部多个可定制区域时,单个 children 不够用该怎么办? 本文先给出可直接复述的结论,再用最小代码说明React 插槽 命名插槽 多个 props JSX的工作方式、判断依据、项目边界和常见误区。
在 React 组件内部定义另一个组件为什么会导致输入框每次渲染都丢失焦点? 本文先给出可直接复述的结论,再用最小代码说明React 组件内定义组件 重挂载 丢失焦点的工作方式、判断依据、项目边界和常见误区。
区分编辑字符串、空值和合法业务数字,解释 Number 空字符串、valueAsNumber 与 NaN 的边界,并用完整 JSX 示例演示保留空输入、提交时校验与数值转换。
通过 Portal 渲染的 React 弹窗,点击事件会冒泡到谁那里,为什么父组件仍能收到? 本文先给出可直接复述的结论,再用最小代码说明React Portal 事件冒泡 React 树 DOM 树的工作方式、判断依据、项目边界和常见误区。
为什么 React 的弹窗、下拉菜单常需要用 Portal 渲染到 body 下,即使定位看似没问题? 本文先给出可直接复述的结论,再用最小代码说明React createPortal 弹窗 overflow z-index的工作方式、判断依据、项目边界和常见误区。
React 表单如何防止用户在请求未完成时重复提交? 本文先给出可直接复述的结论,再用最小代码说明React 表单 防止重复提交 pending 禁用的工作方式、判断依据、项目边界和常见误区。
解决 React 逐层透传 props(prop drilling)时,组合和 Context 该怎么选? 本文先给出可直接复述的结论,再用最小代码说明React prop drilling 组合 Context 选择的工作方式、判断依据、项目边界和常见误区。
把 props 直接用作 React state 初始值时,为什么后续 props 变化不会同步,正确做法有哪些? 本文先给出可直接复述的结论,再用最小代码说明React props 初始化 state 不同步的工作方式、判断依据、项目边界和常见误区。
为什么说保持 React 组件渲染纯净能提高可测试性,哪些副作用会破坏这种纯净? 本文先给出可直接复述的结论,再用最小代码说明React 纯组件 副作用 可测试性的工作方式、判断依据、项目边界和常见误区。
React 19 中 form 的 action 属性和传统 onSubmit 处理方式有什么区别? 本文先给出可直接复述的结论,再用最小代码说明React 19 form action useActionState的工作方式、判断依据、项目边界和常见误区。
React 中复用逻辑时,render props 模式和自定义 Hook 各适合什么场景? 本文先给出可直接复述的结论,再用最小代码说明React render props 自定义 Hook 逻辑复用 对比的工作方式、判断依据、项目边界和常见误区。
设计一个可复用的 React 表单字段组件时,props 接口应该怎么设计才好用? 本文先给出可直接复述的结论,再用最小代码说明React 可复用 表单字段组件 props 设计的工作方式、判断依据、项目边界和常见误区。
解释原生 select multiple 的字符串数组 value、selectedOptions 与 FormData.getAll,说明选项删除、异步回填、空选择和选中顺序的业务边界。
React 多字段表单怎样共用 onChange,哪些控件需要单独处理? 本文先给出可直接复述的结论,再用最小代码说明React 多个 input 共用 onChange的工作方式、判断依据、项目边界和常见误区。
React 状态提升过度会带来什么问题,如何判断状态应该就近放置? 本文先给出可直接复述的结论,再用最小代码说明React 状态就近 过度提升 性能的工作方式、判断依据、项目边界和常见误区。
测试 React 组件时为什么应该断言用户可见的行为而不是组件内部 state? 本文先给出可直接复述的结论,再用最小代码说明React 组件测试 行为 实现细节的工作方式、判断依据、项目边界和常见误区。
为什么 React 的 textarea 用 value 属性而不是子节点设初始内容,这和 HTML 有何不同? 本文先给出可直接复述的结论,再用最小代码说明React textarea value 子节点 区别的工作方式、判断依据、项目边界和常见误区。
为什么 React 19 的 useFormStatus 必须写在 form 内部的子组件里才有效? 本文先给出可直接复述的结论,再用最小代码说明React 19 useFormStatus 子组件 form的工作方式、判断依据、项目边界和常见误区。
为什么自定义 React 输入组件通常遵循 value/onChange 的约定,这样做有什么好处? 本文先给出可直接复述的结论,再用最小代码说明React 自定义组件 value onChange 约定的工作方式、判断依据、项目边界和常见误区。
React memo 能阻止 Context 更新传给深层消费者吗? 本文先给出可直接复述的结论,再用最小代码说明React memo 能阻止 Context 更新吗的工作方式、判断依据、项目边界和常见误区。
React 中把子树以 children prop 传入有状态的父组件,为什么父组件状态变化时这些子组件不会重渲染? 本文先给出可直接复述的结论,再用最小代码说明React children 组合 避免子树重渲染 原理的工作方式、判断依据、项目边界和常见误区。
Context 对象只改一个字段,其他字段的消费者也会重渲染吗? 本文先给出可直接复述的结论,再用最小代码说明React Context 部分字段变化重渲染的工作方式、判断依据、项目边界和常见误区。
React 中设计一个可被父组件共享其值的可复用组件时,受控与非受控两种模式的状态归属差别是什么? 本文先给出可直接复述的结论,再用最小代码说明React 受控组件 非受控组件 状态归属的工作方式、判断依据、项目边界和常见误区。
React 的 createContext 传入的默认值在什么情况下才会被组件实际读到? 本文先给出可直接复述的结论,再用最小代码说明React Context 默认值什么时候生效的工作方式、判断依据、项目边界和常见误区。
拿到一个「页面输入时整棵树都在重渲染」的 React 应用,如何定位是不是 Context 使用不当导致的? 本文先给出可直接复述的结论,再用最小代码说明React Profiler 诊断 Context 多余渲染的工作方式、判断依据、项目边界和常见误区。
React 官方为什么把「在 useEffect 里获取服务器数据并存入 state」列为需要框架或路由层介入的场景? 本文先给出可直接复述的结论,再用最小代码说明React useEffect 获取数据 缺陷 官方建议的工作方式、判断依据、项目边界和常见误区。
React 中切换筛选条件快速触发多次 effect 请求时,旧响应后到导致界面显示过期数据,官方推荐的解法是什么? 本文先给出可直接复述的结论,再用最小代码说明React effect 请求竞态 cleanup ignore的工作方式、判断依据、项目边界和常见误区。
React 中一个多字段共享编辑状态的表单,选择每个字段一个 useState 还是整体一个对象 state 的判断依据是什么? 本文先给出可直接复述的结论,再用最小代码说明React 表单 state 拆分 合并 对象的工作方式、判断依据、项目边界和常见误区。
React 中判断一份客户端状态是否值得提升为全局共享状态的标准是什么? 本文先给出可直接复述的结论,再用最小代码说明React 全局状态 局部状态 判断标准的工作方式、判断依据、项目边界和常见误区。
为什么通过 Context 共享给多个组件的对象状态必须做不可变更新,直接修改字段会发生什么? 本文先给出可直接复述的结论,再用最小代码说明React Context 共享对象 不可变更新的工作方式、判断依据、项目边界和常见误区。
同一个 React Context 嵌套 Provider 时,消费者读取哪一层? 本文先给出可直接复述的结论,再用最小代码说明React Context 嵌套 Provider 覆盖规则的工作方式、判断依据、项目边界和常见误区。
React 中父子组件各自在 effect 里请求数据会形成请求瀑布,官方建议的消除思路是什么? 本文先给出可直接复述的结论,再用最小代码说明React 请求瀑布 并行 获取数据的工作方式、判断依据、项目边界和常见误区。
为什么说把接口返回的数据直接塞进 React Context 并不等于拥有了服务器数据缓存? 本文先给出可直接复述的结论,再用最小代码说明React Context 服务器数据 缓存 失效的工作方式、判断依据、项目边界和常见误区。
React 19 的 useOptimistic 在共享服务器数据的界面上如何实现乐观更新,提交失败时界面如何回退? 本文先给出可直接复述的结论,再用最小代码说明React 19 useOptimistic 乐观更新 回退的工作方式、判断依据、项目边界和常见误区。
React 中一个组件被条件渲染卸载后还想保留它的编辑进度等状态,有哪些手段及取舍? 本文先给出可直接复述的结论,再用最小代码说明React 组件卸载 保留状态 方案的工作方式、判断依据、项目边界和常见误区。
React 中把父组件传入的 props 用 useState 复制一份再共享给子组件,为什么被认为是反模式? 本文先给出可直接复述的结论,再用最小代码说明React props 复制到 state 反模式的工作方式、判断依据、项目边界和常见误区。
React 中把多个组件共享的状态更新逻辑抽成 reducer,相比分散的 useState 在归属和可测试性上带来什么改变? 本文先给出可直接复述的结论,再用最小代码说明React useReducer 状态逻辑抽离 共享的工作方式、判断依据、项目边界和常见误区。
React useReducer 配合 Context 时,为什么常拆开 state 和 dispatch? 本文先给出可直接复述的结论,再用最小代码说明React useReducer Context state dispatch 拆分的工作方式、判断依据、项目边界和常见误区。
React 中需要在多个组件间共享但变化时不应触发渲染的值,为什么应该用 ref 或模块级变量而不是 state? 本文先给出可直接复述的结论,再用最小代码说明React useRef 共享值 不触发渲染的工作方式、判断依据、项目边界和常见误区。
React Context 不支持选择器,组件只想订阅其中一部分数据时有哪些官方认可的规避方案及各自代价? 本文先给出可直接复述的结论,再用最小代码说明React Context 选择器 替代方案的工作方式、判断依据、项目边界和常见误区。
React 服务端渲染与客户端水合共用 useSyncExternalStore 时,getServerSnapshot 解决什么一致性问题? 本文先给出可直接复述的结论,再用最小代码说明useSyncExternalStore getServerSnapshot 水合的工作方式、判断依据、项目边界和常见误区。
React 面试中如何区分「服务器状态」与「客户端状态」,这一分类为什么影响状态管理选型? 本文先给出可直接复述的结论,再用最小代码说明React 服务器状态 客户端状态 区别 选型的工作方式、判断依据、项目边界和常见误区。
为什么 React 的 useSyncExternalStore 要求 getSnapshot 多次调用必须返回缓存的同一个引用? 本文先给出可直接复述的结论,再用最小代码说明useSyncExternalStore getSnapshot 缓存 无限循环的工作方式、判断依据、项目边界和常见误区。