React Native 中 JSI 相比传统 Bridge 解决了哪类同步调用问题,又没有解决什么问题?
围绕“React Native 中 JSI 相比传统 Bridge 解决了哪类同步调用问题,又没有解决什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须说清直接持有 C++ 对象与同步调用的收益,以及线程安全和崩溃面仍存在。
程序员面试题库第 79 页,收录第 3901–3950 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
围绕“React Native 中 JSI 相比传统 Bridge 解决了哪类同步调用问题,又没有解决什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须说清直接持有 C++ 对象与同步调用的收益,以及线程安全和崩溃面仍存在。
围绕“React Native Metro 解析 .native.js、.android.js 与图片 @2x/@3x 资”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明打包期平台选择与原生产物落盘一致性。
围绕“什么场景应该把 React Native 功能做成原生模块,而不是继续用 JavaScript 实现”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出计算、系统 API、后台约束与第三方 SDK 四类判断标准。
围绕“React Native 深链接进入应用时,如何决定先初始化导航容器还是先解析 URL”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明鉴权态、启动任务与 pending URL 暂存策略。
围绕“React Native 新架构下 legacy 原生模块互操作能兜底什么,不能掩盖什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明兼容层让旧模块可运行,但不等于获得同步 JSI 与类型安全。
围绕“React Native 中 Platform.select 与 .android.js/.ios.js 文件后缀分”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按分支粒度、包体影响与可测试性选择行内分支或文件拆分。
围绕“React Native 里用 Platform.Version 做 Android/iOS 能力降级时,为什么不能”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 OS 相同但系统能力/权限策略不同的例子。
围绕“React Native 发布流程中,原生商店包、热更新包与灰度配置的能力边界应如何划分”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明哪些变更必须走商店审核、哪些可在 JS 资源层回滚。
围绕“React Native TurboModule 的 Codegen 规格里,为什么不能随意使用动态 any 或复杂”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须落到可生成 C++/ObjC/Java 绑定、可空性与 Promise 返回约束。
围绕“React Native 升级版本时,原生工程中的 Podfile、build.gradle 与手工桥接代码冲突怎么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须用升级助手差异、模板对齐与自定义补丁清单化来决策。
围绕“为什么 React Native 中用 Animated 改变 width/height 无法走原生驱动,代价是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释布局属性需要走 Yoga 布局与 JS 线程每帧更新导致掉帧,并给出 transform 缩放或 LayoutAnimation。
围绕“React Native 列表项入场动画为什么容易和 FlatList 虚拟化冲突”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 item 复用导致动画状态残留、滚动中重复触发入场的问题,及按 key 记录已动画状态的解法。
围绕“React Native Animated 的 useNativeDriver 把什么工作移出了 JS 线程,支持哪”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明动画声明序列化后在原生侧执行、每帧不再过桥,并列出仅支持 transform/opacity 等非布局属性的限制。
围绕“React Native 中每帧 setState 驱动动画为什么是反模式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 60fps 下每帧触发 React 渲染与桥接的开销,并引出 Animated 或原生驱动方案。
围绕“React Native 应用冷启动慢,应如何分阶段定位是原生初始化还是 JS 执行耗时”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出区分原生加载、bundle 执行、首屏渲染三阶段的测量思路与对应优化入口。
围绕“React Native 中频繁的桥(Bridge)通信为什么成为性能瓶颈”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释异步 JSON 序列化消息的成本与高频小消息(滚动、手势)场景的问题,并指出合并通信或原生化处理的方向。
围绕“为什么 React Native 线上包中残留 console.log 会造成可感知的性能损耗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明日志序列化与调试通道开销在低端机上累积成卡顿,以及构建期 babel 插件剔除的做法。
围绕“社区常见替代方案(如 Flash List)相对 React Native FlatList 解决的核心问题是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 FlatList 空白/重挂载痛点与回收复用(recycling)思路的差异,并提示以官方 FlatList 文档为基线对照,。
围绕“React Native FlatList 快速滚动出现白屏(blank cells)该如何定位与解决”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出渲染速度跟不上滚动速度的诊断思路及 maxToRenderPerBatch、windowSize 等取舍。
围绕“React Native FlatList 的 extraData 解决的是什么更新失效问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 PureComponent 浅比较导致 data 之外的状态(如选中 id)不触发重渲染,以及 extraData 的正确用法。
围绕“React Native FlatList 的 initialNumToRender 设置过小或过大各有什么后果”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须分别回答首屏白屏风险与首屏渲染阻塞两种失败模式,并给出按首屏可视行数取值的原则。
围绕“React Native FlatList 为什么建议固定行高或使用 getItemLayout”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释动态测量带来的布局计算成本与 scrollToIndex/初始滚动位置失效问题。
围绕“React Native FlatList 的 keyExtractor 为什么影响列表更新性能与正确性”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明不稳定 key 导致整行重挂载、状态丢失的机制,以及应选稳定唯一 id。
围绕“React Native FlatList 的 maxToRenderPerBatch 与 updateCellsB”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明批量渲染大小与批次间隔对掉帧和白屏的此消彼长。
围绕“React Native FlatList 的列表项为什么应该做成纯组件并避免行内匿名回调”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 renderItem 引用变化与 item 数据变化触发的重渲染链路,以及用 memo/稳定回调的隔离方式。
围绕“React Native FlatList 的 removeClippedSubviews 什么时候有用、什么时候会”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明该属性在 Android 上裁剪屏幕外视图省内存的收益,以及绝对定位/变换内容被误裁剪的典型问题。
围绕“React Native 中父组件状态频繁变化导致整个 FlatList 重渲染该怎么治理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出状态下沉、拆分组件、把 renderItem 与 data 引用稳定化等手段,并区分与 extraData 场景的边界。
围绕“React Native 中长列表为什么应该用 FlatList 而不是 ScrollView”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 ScrollView 一次性渲染全部子项带来的内存与首屏开销,以及 FlatList 按需渲染的区别。
围绕“React Native FlatList 的窗口化(windowing)机制是怎样工作的”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释可视窗口外项目被移除/复用的策略与 windowSize 的默认行为。
围绕“React Native 性能优化中 60fps 的帧预算意味着什么,JS 帧与 UI 帧有何区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释每帧约 16.7ms 预算,以及官方区分的 JS 帧率与 UI 帧率各自掉帧的不同含义。
围绕“React Native 手势跟手动画要保证 60fps,关键约束是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明手势事件经 JS 线程处理时,JS 忙即掉帧,因此要让跟手逻辑留在 UI/原生侧。
围绕“React Native 横向卡片列表如何用 FlatList 实现吸附滚动且不掉帧”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 snapToInterval/declerationRate 与 getItemLayout 配合的必要性,以及大卡片下的渲染。
围绕“React Native 图片解码发生在哪个线程,为什么仍可能让 UI 掉帧”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明解码可 offload 但位图上传 GPU 与布局仍在主/UI 线程,大图或密集图片仍掉帧。
围绕“React Native Image 在 iOS 与 Android 上的缓存行为有什么差异,会带来什么实战问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Android 依赖底层 Fresco 缓存而 iOS 依赖原生 URL 缓存、强制刷新与更新不生效的处理方式,不评价第三方缓。
围绕“React Native Image 组件在列表中使用时有哪些基础性能要求”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明尺寸必须明确、resizeMode 选择对解码与布局的影响。
围绕“React Native 列表图片加载时的闪烁与布局跳动如何从组件层面避免”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出固定临时标记尺寸、fadeDuration(Android)控制等手段,并说明跳动根源是图片到达后尺寸重排。
围绕“React Native 直接渲染几 MB 的原图为什么会造成卡顿和内存飙升”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释解码后位图按像素占内存的放大关系,以及服务端缩略图/指定尺寸的解决路径。
围绕“React Native 中本地静态图片与远程图片在打包与渲染性能上有哪些本质区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 require 静态资源随包体注册与远程按需加载的差异,以及 require 动态路径不可用的原因。
围绕“React Native Image.prefetch 适合什么场景,滥用会有什么代价”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明提前解码到磁盘缓存对即将进入屏幕的图片的收益,以及预取过多占带宽与缓存挤出的代价。
围绕“React Native 的 InteractionManager.runAfterInteractions 解决什”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明把重工作推迟到转场/交互动画之后以保证动画流畅,以及任务队列堆积时延迟不可控的局限。
围绕“React Native 中 JS 线程被长任务阻塞时用户会看到什么现象,为什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明依赖 JS 的动画、触摸响应与渲染全部延迟的表现,以及把重计算移出 JS(原生模块、分片)的方向。
围绕“React Native 旧架构中 JS 线程、UI(主)线程与原生模块线程分别负责什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 JS 执行业务逻辑、UI 线程负责布局绘制与触控、桥负责异步通信的职责划分。
围绕“React Native LayoutAnimation 适合哪类动画,什么时候不够用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明其适合布局变化的整体过渡、声明简单,但不支持精细手势跟随与逐元素编排,并注意 Android 需手动开启。
围绕“React Native 聊天类双向加载列表用 FlatList 需要注意哪些问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 inverted 的工作原理、向头部插入数据导致的滚动位置跳动及 maintainVisibleContentPosition。
围绕“React Native 长列表内存持续上涨应如何从列表角度排查”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须列出 key 不稳定导致挂载累积、item 内订阅未清理、windowSize 过大等列表特异性原因。
围绕“React Native 中 FlatList 嵌套在 ScrollView 里为什么既报警告又伤性能”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释同向嵌套使虚拟化失效、全部子项被渲染的原因,并给出 Header/Footer 化或分段拆分的替代结构。
围绕“React Native 新架构(Fabric/JSI)相对旧桥接模型在性能上解决了什么核心问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 JSI 同步调用与 Fabric 渲染管线消除异步桥瓶颈的核心收益,并标注这是新架构专属内容。
围绕“React Native FlatList 的 onEndReached 被重复触发或过早触发该怎么处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 threshold 的语义、首屏不足一屏导致立即触发的现象,以及用加载中标志位去重的模式。
围绕“如何用 React Native 内置 Perf Monitor 判断卡顿发生在 JS 线程还是 UI 线程”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出根据两条帧率曲线定位瓶颈侧的判读方法及对应的下一步排查方向。
围绕“如何用 Hermes 的采样 profiling 定位 React Native 中的 JS 热点函数”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明通过 Hermes profile 找出耗时 JS 函数并据此优化渲染/计算的流程,并标注依赖 Hermes 引擎。