小程序与跨端框架

共 44 题
#

1. React Native 的 New Architecture(Fabric/TurboModules/Hermes)

A Fabric 渲染器仍通过异步 Bridge 批量传递 UI 更新
B TurboModules 通过 JSI 实现懒加载与强类型接口,Hermes 提供字节码预编译提升启动性能 ✓ 正确答案
C Hermes 是专为 Web 端设计的 JavaScript 引擎
D New Architecture 与旧架构在原生模块开发上完全兼容,无需改造
#

2. Uni-app(条件编译、easycom、小程序与 H5 差异)

A 条件编译的代码会在运行时按平台动态执行
B easycom 需要每个组件显式 import 才能使用
C Uni-app 在小程序端拥有完整的 DOM API
D 条件编译在编译期按平台宏裁剪代码,easycom 按目录约定自动引入组件 ✓ 正确答案
#

3. Taro(多端统一、编译原理、运行时方案)

A Taro 3 将 React/Vue 代码编译为小程序 DSL,并通过运行时适配层映射虚拟 DOM 与 setData ✓ 正确答案
B Taro 3 自研了一套全新的 DSL 语法
C Taro 编译后的代码在小程序中直接运行完整的浏览器 DOM
D Taro 与 Uni-app 的技术路线完全相同
#

4. HarmonyOS 元服务与 ArkUI 在跨端的工程化应用

A 元服务需要完整安装后才能使用
B ArkUI 只能用于车机设备
C ArkUI 使用 ArkTS 声明式语法,元服务以免安装卡片形态提供轻量服务 ✓ 正确答案
D 元服务与主应用完全独立,无法联动
#

5. Flutter(Impeller 渲染器、Widget 树、三棵树,按目标平台与版本核查)

A Widget 树的变化会直接触发 RenderObject 树的整体重建
B Element 树负责布局与绘制
C Impeller 通过预编译着色器消除 Skia 首次绘制时的编译卡顿 ✓ 正确答案
D Impeller 在所有平台均已默认启用且无需版本核查
#

6. 小程序 wx.request 的并发限制(10)与请求队列化的工程价值

A 小程序 wx.request 的并发请求数没有上限
B wx.request 并发请求数默认存在上限(约 10),工程上通过请求队列化控制并发与优先级 ✓ 正确答案
C 并发请求超过限制时会自动排队且不影响超时
D 请求队列化会降低请求成功率
#

7. 微信小程序双线程架构(逻辑层 / 渲染层)与 WebView 单线程的工程价值

A 小程序逻辑层可直接操作渲染层的 DOM
B 双线程架构隔离逻辑与渲染,但 setData 序列化通信存在性能开销,需控制数据量 ✓ 正确答案
C 小程序渲染层与逻辑层运行在同一线程
D setData 是同步直接写内存,无性能开销
#

8. WXML、WXSS、JS、JSON 与生命周期

A JSON 配置文件支持注释
B onLoad 每次页面显示时都会触发
C WXSS 不支持 rpx 单位
D WXML 负责结构并支持数据绑定,onLoad 在页面首次加载时触发一次,onShow 每次显示时触发 ✓ 正确答案
#

9. 支付宝、抖音、百度小程序的差异

A 各平台小程序的 API 命名完全一致,可直接复用
B 支付宝、抖音、百度小程序的 API 与能力存在差异,多端开发需通过跨端框架或条件编译适配 ✓ 正确答案
C 抖音小程序与微信小程序没有任何差异
D 小程序跨端框架可以完全消除平台审核规范的差异
#

10. 微信小程序的 behavior 与 mixin 的现代取舍

A behavior 的同名属性按先引入优先覆盖
B behavior 的生命周期函数不会合并执行
C behavior 只能共享 data,不能共享 methods
D behavior 与 mixin 都存在隐式依赖与命名冲突问题,现代工程更倾向组合化复用 ✓ 正确答案
#

11. 小程序自定义组件如何设计(数据/样式/事件隔离),跨平台复用的边界在哪?

A 组件内部事件会自动冒泡到页面
B 依赖平台 API 的组件也可以无差别跨平台复用
C 组件默认样式隔离(isolated),数据单向传入,事件通过 triggerEvent 显式抛出 ✓ 正确答案
D 组件内 data 可以直接被页面修改
#

12. Lynx/字节跨端方案与 Flutter、Web 的工程取舍

A Flutter 通过原生组件渲染,与 Web 生态完全兼容
B Lynx 使用 Dart 语言开发
C Lynx 将业务逻辑置于独立 JS 线程并由原生渲染,与 Flutter 自绘渲染、Web 原生 DOM 渲染形成三类取舍 ✓ 正确答案
D Lynx 渲染完全依赖 WebView
#

13. uni-app x 与 taro 3.x 在多端 DSL 的工程取舍

A Taro 3 将代码编译为各端原生语言
B uni-app x 将 DSL 编译为各端原生 UI 追求性能,Taro 3 复用 React/Vue 生态并以运行时适配多端 ✓ 正确答案
C uni-app x 与 Taro 3 的技术路线完全相同
D Taro 3 无法支持 H5 输出
#

14. Taro 4 的 React 19 适配与编译时优化

A Taro 4 通过编译时优化(tree-shaking、预构建)减小产物体积并加速构建,同时适配 React 19 ✓ 正确答案
B Taro 4 不支持 React 19 的 hooks
C Taro 4 的编译时优化会显著增大包体积
D Taro 4 不再支持小程序端
#

15. wepy/taro/uni-app 跨端 DSL 在小程序编译目标兼容性的工程取舍

A wepy 目前仍在积极维护并支持多端输出
B Taro 3 与 uni-app 的编译目标完全相同
C uni-app 无法编译到小程序端
D 各 DSL 在小程序编译目标的兼容性差异体现在维护状态、平台新特性跟进速度与多端覆盖上 ✓ 正确答案
#

16. Skyline 渲染引擎(基于 W3C 标准/双线程模型)在小程序渲染性能的工程价值

A Skyline 基于原生渲染管线与双线程模型,首屏与滚动性能优于 WebView 渲染 ✓ 正确答案
B Skyline 仍基于 WebView 渲染
C Skyline 不支持动画
D Skyline 完全等价于 WebView 模式,无需适配
#

17. 小程序云开发(云函数、云数据库、云存储)

A 云开发提供云函数、云数据库、云存储,云函数运行在服务端且需通过安全规则与配额治理控制风险 ✓ 正确答案
B 云函数的密钥可以直接放在小程序端代码中
C 云数据库必须由云函数访问,前端不能直连
D 云存储不需要配置安全规则
#

18. 京东、QQ 小程序的差异化能力

A 京东小程序侧重电商交易能力,QQ 小程序侧重社交裂变能力,接入时需按平台适配与合规 ✓ 正确答案
B 京东小程序与 QQ 小程序的开放能力完全相同
C QQ 小程序不提供登录能力
D 跨端框架对所有平台能力的支持都是等价的
#

19. React Native Bridge/JSI/Fabric 新架构与 Hermes 引擎

A 新架构中 JS 与原生仍通过 JSON 序列化的 Bridge 通信
B Hermes 只在旧架构中可用
C Fabric 仍使用异步批量提交,无法改善动画卡顿
D JSI 让 JS 直接调用 C++ 宿主对象,TurboModules 懒加载,Fabric 支持同步渲染 ✓ 正确答案
#

20. React Native Skia/@shopify/react-native-skia 在跨端高性能渲染的工程价值

A react-native-skia 以声明式组件描述绘制指令并由 GPU 渲染,适合图表与复杂图形场景 ✓ 正确答案
B react-native-skia 通过 JS 逐帧绘制位图实现渲染
C react-native-skia 只能用于 Web 端
D react-native-skia 与 React Native 原生视图体系完全等同
#

21. Wechat Mini Program Web-view 与 Hybrid H5 在跨端的工程取舍

A 小程序 web-view 内可以直接调用微信支付
B Hybrid H5 无法调用任何原生能力
C web-view 适合轻量复用 H5 长尾页面,Hybrid H5 通过 JSBridge 与离线包更适合迭代快的 App 内业务 ✓ 正确答案
D web-view 页面无需配置业务域名
#

22. Lynx(字节)双线程架构与 Web 重叠渲染

A Lynx 将 JS 逻辑与渲染分离,并通过 Web 重叠渲染让同一套代码在原生与 Web 端保持一致 ✓ 正确答案
B Lynx 的逻辑与渲染都在同一线程执行
C Lynx 无法在 Web 端运行
D Lynx 使用 Dart 作为开发语言
#

23. Native 端能力调用与桥接协议

A 桥接协议不需要参数校验与错误码约定
B 所有 Native 能力都应无条件暴露给前端调用
C JSBridge 只能通过 URL Scheme 通信
D 桥接能力应遵循最小权限原则,协议需版本化并区分一次性响应与持续事件流 ✓ 正确答案
#

24. 跨端框架的性能与原生体验取舍

A 跨端框架在所有场景下都能达到原生性能
B 跨端框架对系统新特性的支持速度总是快于原生
C 内容型应用适合跨端以换开发效率,性能敏感场景需原生或混合架构,并用基准测试辅助决策 ✓ 正确答案
D 跨端框架不需要关注内存与帧率
#

25. 跨端框架在跨端、跨平台、跨框架场景下的应用涉及哪些适配策略,工程上应如何保证一致性

A 只要使用跨端框架,多端行为就自动一致
B 跨端一致性只需靠代码评审保证
C 条件编译只能用于运行期
D 适配需覆盖端、平台、框架三个维度,并通过能力矩阵、设计 Token 与自动化验证保证一致性 ✓ 正确答案
#

26. 跨端框架在生产环境中应建立哪些可观测性、日志与排障手段,才能区分设备/系统/网络侧的根因

A 跨端可观测性需日志、指标、链路与远程诊断协同,并以设备/系统/网络维度标签做对比分析定位根因 ✓ 正确答案
B 崩溃只需要记录错误信息即可定位
C 所有问题都必然由业务代码引起
D 可观测性只需在开发环境建设
#

27. React Native 在 iOS/Android 跨端的工程边界与现代应用

A RN 的组件在 iOS 与 Android 上行为完全一致,无需平台适配
B RN 可以完全替代原生开发
C RN 适合高频迭代业务,深度系统集成需原生模块补位,iOS/Android 行为差异需平台代码处理 ✓ 正确答案
D RN 不支持自定义原生模块
#

28. Expo(React Native 增强框架)在开发体验的工程价值

A Expo Go 工作流支持任意自定义原生代码
B Expo 只能开发 Web 应用
C Expo 通过统一 SDK、EAS 云构建与热更新提升开发体验,深度原生定制需 prebuild 与开发构建 ✓ 正确答案
D Expo 无法生成 iOS/Android 原生工程
#

29. Flutter 在跨端(iOS、Android、Web、Desktop)

A Flutter 在 Web 端使用浏览器 DOM 渲染
B Flutter 以自绘引擎保证移动端高度一致,Web/Desktop 各有适配要点(体积、可访问性、窗口管理) ✓ 正确答案
C Flutter 无法在桌面端运行
D Flutter 的所有插件在所有平台自动可用
#

30. Tauri 在 Rust + WebView 跨端的工程应用与边界

A Tauri 用系统 WebView 承载前端、Rust 处理后端,包体积小但受系统 WebView 版本影响 ✓ 正确答案
B Tauri 内置了 Chromium 渲染引擎
C Tauri 的后端使用 Node.js
D Tauri 完全兼容所有 Electron 插件
#

31. Capacitor 在 Ionic 跨端(iOS、Android、Web)

A Capacitor 要求使用固定前端框架
B Capacitor 不支持 iOS 与 Android
C Capacitor 与 Cordova 的插件机制完全相同
D Capacitor 让 Web 代码运行在原生壳中并通过插件桥接原生能力,保持 Web 优先且允许扩展原生代码 ✓ 正确答案
#

32. Cordova 相较 Capacitor 的工程取舍与现状

A Cordova 的插件通过 npm 原生管理
B Cordova 进入维护模式,其插件体系与现代工具链存在差距,新项目推荐 Capacitor,遗留项目可渐进迁移 ✓ 正确答案
C Capacitor 是 Cordova 的旧版本
D Cordova 支持现代 WKWebView 的全部特性
#

33. uni-app 在 Vue 跨端(H5、小程序、App)的工程价值

A uni-app 编译的三端运行时完全一致
B uni-app 让 Vue 代码编译到 H5、小程序与 App,三端存在 DOM、生命周期与样式差异,需用条件编译与统一 API 治理 ✓ 正确答案
C uni-app 只支持 Vue 2
D uni-app 的 App 端不需要原生桥接
#

34. Taro 3+ 在 React 跨端(小程序、H5、RN)的工程实践

A Taro 3 在小程序中直接运行浏览器 DOM
B Taro 3 只能编译到小程序
C Taro 3 通过自定义 reconciler 将 React 渲染适配到多端,实践中需选跨端兼容依赖并治理 setData ✓ 正确答案
D React 生态中的所有库都能在 Taro 3 中直接使用
#

35. WePY 在 Vue 小程序跨端的工程应用与现状

A WePY 完整支持 Vue 3 全部特性
B WePY 是类 Vue 语法的早期小程序框架,目前已维护停滞,遗留项目应评估迁移到 Taro/uni-app ✓ 正确答案
C WePY 支持编译到多端应用商店
D WePY 仍由官方积极迭代
#

36. 跨端框架的原生模块(Native Module)扩展的工程实践

A 原生模块只需在 iOS 实现即可
B 各端错误码可以随意定义
C 原生模块的耗时操作可以直接阻塞主线程
D 原生模块需统一 JS 接口、多平台一致实现、统一错误码,并管理好线程与资源生命周期 ✓ 正确答案
#

37. Hermes 引擎在 React Native 启动性能的工程价值

A Hermes 在启动时进行 JIT 编译预热
B Hermes 与 JSC 的启动性能没有差别
C Hermes 会显著增大安装包体积
D Hermes 通过字节码预编译(AOT)与内存优化减少启动开销,但需在构建期接入 hermesc ✓ 正确答案
#

38. Flutter 的 Impeller 渲染引擎在 iOS 性能的现代应用

A Impeller 在运行时编译着色器
B Impeller 预编译着色器并深度集成 Metal,消除了 iOS 上 Skia 的着色器编译卡顿 ✓ 正确答案
C Impeller 仅支持 Android
D Impeller 与 Skia 的渲染性能完全一致
#

39. Flutter 的 Dart 3 模式(Patterns、Records)

A Dart 3 的 Records 提供轻量多值聚合,Patterns 支持解构与模式匹配,可简化 Flutter 分支渲染 ✓ 正确答案
B Dart 3 的 Records 是命名类的一种
C Patterns 只能用于字符串
D Dart 3 移除了 switch 语句
#

40. Tauri 的 Rust 后端与前端(Web)通信(invoke)

A invoke 可以直接调用任意 Rust 函数
B 所有 Tauri 命令都在主线程同步执行
C invoke 只能传递字符串参数
D Tauri 前端通过 invoke 调用 #[tauri::command] 命令,需以 capabilities 白名单控制权限并统一错误处理 ✓ 正确答案
#

41. Capacitor 的插件(Plugin)开发与 iOS/Android 原生集成的工程实践

A Capacitor 插件由 JS 接口与 iOS/Android 原生实现组成,需声明权限、管理线程与资源并统一错误返回 ✓ 正确答案
B Capacitor 插件只需要 Web 端实现
C 插件方法可以在任意线程随意回调
D Capacitor 插件无需注册即可使用
#

42. uni-app 的条件编译(#ifdef MP-WEIXIN)在跨端的工程价值

A 条件编译在运行时根据设备动态执行
B 条件编译可以替代所有运行时能力检测
C uni-app 条件编译在编译期按平台宏裁剪代码,隔离平台差异并减小产物,但需维护统一的宏规范 ✓ 正确答案
D 平台宏写错不会影响产物
#

43. Taro 3 的多端构建配置(Babel、Webpack)的工程应用

A Taro 3 用 Babel 按平台转译代码、Webpack 打包产物,通过平台分段配置与分包策略治理多端构建 ✓ 正确答案
B Taro 3 的构建不依赖 Babel 或 Webpack
C 多端构建使用完全相同的配置
D Babel 负责模块打包
#

44. Flutter 的 Skia 与 Impeller 渲染引擎在不同平台的工程取舍

A Skia 存在着色器编译卡顿,Impeller 预编译着色器,需按平台与版本核查默认值与回退策略 ✓ 正确答案
B 所有 Flutter 平台都默认 Impeller
C Impeller 是软件渲染引擎
D Skia 与 Impeller 渲染结果完全相同