小程序独立分包与普通分包有什么区别,什么业务适合用独立分包?
围绕“小程序独立分包与普通分包有什么区别,什么业务适合用独立分包”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明独立分包不依赖主包即可运行及其限制(如不能用主包资源与 App 生命周期差异)。
程序员面试题库第 97 页,收录第 4801–4850 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
围绕“小程序独立分包与普通分包有什么区别,什么业务适合用独立分包”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明独立分包不依赖主包即可运行及其限制(如不能用主包资源与 App 生命周期差异)。
围绕“小程序逻辑层和渲染层之间通过什么机制通信,为什么说频繁跨线程通信是性能瓶颈”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲清数据经 Native 中转序列化的成本。
围绕“小程序登录流程中 wx.login 拿到的 code 如何使用,为什么不能在前端直接换 session_key”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须画出 code 到后端再调 code2Session 的完整链路及安全原因。
围绕“小程序从 B 页面返回 A 页面时如何把数据带回去”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 getCurrentPages 改前一页数据或 events 事件回调等方案并比较。
围绕“小程序页面中定时器和事件监听应在哪个生命周期清理,泄漏会造成什么后果”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分 onHide 与 onUnload 下资源是否释放的判断。
围绕“小程序页面数据初始化应该放在 onLoad 还是 onShow,两者的取舍标准是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按是否需要每次进入都刷新来区分,不罗列其他生命周期钩子。
围绕“为什么小程序页面 onLoad 之前拿不到页面实例和 this.setData,路由传参又只能在 onLoad 拿”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释页面实例创建与路由参数注入的先后顺序。
围绕“小程序页面 onLoad、onShow、onReady 的执行顺序和各自只执行一次还是多次”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出完整顺序及各钩子的触发次数差异。
围绕“小程序页面滚动卡顿、长列表渲染慢时,从双线程与 setData 角度如何定位和优化”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出减少节点数、分页加载与 IntersectionObserver 等具体手段。
围绕“小程序页面栈最多多少层,超过后 navigateTo 会怎样,如何规避”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明层数上限、超限表现与用 redirectTo 等规避方案。
围绕“小程序获取用户手机号的流程是怎样的,为什么需要后端配合解密”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 button 触发、code/加密数据交后端换取手机号的链路与安全边界。
围绕“小程序 wx.navigateTo 的 events 参数(EventChannel)怎么用,解决什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 EventChannel 双向通信机制相对 getCurrentPages 的优势。
围绕“小程序页面跳转时如何传参,复杂对象参数有哪些可靠传递方案”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖完整回答要覆盖 query 拼接、encodeURIComponent 编码及事件通道或全局存储等替代方案。
围绕“小程序 wx.navigateTo、wx.redirectTo、wx.switchTab、wx.reLaunch 的”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按页面栈变化和目标页面类型(是否 tabBar)区分四个 API。
围绕“小程序登录态过期如何检测与无感刷新,wx.checkSession 的局限是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 checkSession 校验微信侧会话与自有 token 过期判断需结合使用。
围绕“小程序 setData 是同步还是异步的,为什么连续读取 this.data 可能拿到旧值”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分数据同步写入与视图异步渲染两个层面。
围绕“小程序 setData 的回调参数什么时候执行,适合用它解决哪类时序问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明回调在视图更新完成后触发及其适用场景。
围绕“小程序 setData 支持哪些数据路径写法,如何只更新数组某一项或对象的某个字段”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出路径更新语法及其相对整对象替换的优势。
围绕“小程序 setData 触发视图更新的底层过程是怎样的,为什么只应传递变化的数据”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明数据传输与 diff 重渲染的链路及传输量对性能的影响。
围绕“在小程序滚动或高频事件中频繁调用 setData 会出什么问题,应如何治理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出合并更新、节流或改用其他方案的具体取舍。
围绕“小程序单次 setData 传输数据过大有什么后果,官方对数据量有什么建议”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明大数据量序列化传输的代价与官方建议上限。
围绕“小程序分包在什么时候被下载,进入分包页面时用户会经历什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明按需下载与加载等待的表现。
围绕“小程序分包预下载如何配置,应基于什么判断决定预下载哪些分包”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 preloadRule 配置方式及网络/场景权衡。
围绕“小程序分包之间以及主包与分包之间的资源引用有哪些限制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须说清分包可引用主包资源、分包间不能互相引用的规则。
围绕“小程序为什么要做分包,主包和分包的体积限制分别是多少”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出体积限制数字与分包对启动速度的意义。
围绕“小程序 tabBar 页面与普通页面在路由和生命周期上有什么特殊之处”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 tab 页只能用 switchTab 切换、首次加载后不销毁等差异。
围绕“小程序中 openid 与 unionid 有什么区别,什么场景必须打通 unionid”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明同一用户跨小程序/公众号/应用唯一标识的场景。
围绕“小程序 Worker 适用于什么场景,它与逻辑层线程之间如何通信、有哪些限制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Worker 无法操作页面与 wx API 受限的边界及典型计算场景。
围绕“无障碍树与 DOM 树有什么区别?ARIA 如何影响无障碍树”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释无障碍树为辅助技术生成的简化树,ARIA 增加信息。
围绕“为什么推荐使用 role=alert 而不是自己设置 aria-live=assertive?它有什么特殊行为”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 alert 自动具有 assertive 特性,且仅用于重要信息。
围绕“在包含多个变更的区域中使用 live region 时,aria-atomic 属性有什么作用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 aria-atomic=true 时播报整个区域,否则只播报变化部分。
围绕“自定义复选框如何向屏幕阅读器传达选中状态?请说明 role=checkbox 和 aria-checked”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释如何模拟原生复选交互,并同步状态属性。
围绕“在实现 Tooltip 时,为什么推荐使用 aria-describedby 而不是 aria-label”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 tooltip 是描述性内容,与名称区分。
围绕“在可展开组件中,aria-expanded 与 aria-hidden 有何不同?它们分别用于什么目的”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分展开状态与内容隐藏,并说明何时使用 hidden 属性。
围绕“元素不能同时是焦点可及又被 aria-hidden 吗?为什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 aria-hidden 元素不应获得焦点,否则读屏用户感到困惑。
围绕“在给元素提供无障碍名称时,aria-label 与 aria-labelledby 有什么区别?各自的使用场景是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲清优先级和引用外部文本的能力。
围绕“希望清空一个 live region 来强制读屏播报变化,但当新内容与旧内容相同时,需要如何操作”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明需要先清空再插入,否则可能被忽略,涉及防抖和延迟。
围绕“在动态内容更新时,如何通过 ARIA live region 向屏幕阅读器通知?请说明 aria-live 的取值”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分 polite 和 assertive,并讨论使用时机。
围绕“对于菜单栏(menubar)组件,键盘交互应支持哪些按键?请说明箭头键和 Home/End 键”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须列出完整键盘支持,涉及方向键、Home、End 和 Escape。
围绕“在按钮上使用方向键导航合适吗?为什么不推荐”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释方向键通常移动焦点,可能导致困惑,适合特定组件内。
围绕“实现一个可编辑的组合框(如自动补全输入框)时,需要哪些 ARIA 属性和键盘交互”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 combobox、listbox、aria-expanded 和方向键导航。
围绕“何时使用按钮 (button) 而不是链接 (a)?请从交互语义的角度说明”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须根据操作类型或导航区分,指出按钮触发动作、链接改变 URL。
围绕“在 SPA 中更新一个区域后,如何判断该内容是否需要被读屏播报?如何避免过度播报”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须基于用户操作和上下文判断,并说明 live region 的克制。
围绕“禁用状态(disabled)的表单控件为何有时不适合?什么情况下应用 readonly 或 aria-disable”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分禁用元素无法聚焦且不会朗读,而 readOnly 或 aria-disabled 仍可读。
围绕“对于展开/收起组件(如手风琴),键盘焦点应如何管理?展开内容后焦点应停留在哪里”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明聚焦在触发按钮而非内容。
围绕“表单项校验失败时,应如何将错误消息与输入框关联?为什么使用 aria-describedby”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释使用 aria-describedby 而不是 aria-label,并说明通知方式。
围绕“在单页应用(SPA)中切换路由时,如果不手动管理焦点会发生什么?通常的做法是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明焦点停留导致页面似乎没有变化,做法包括移到标题或主内容。
围绕“通过 CSS transform 或 flex 布局改变元素视觉位置,会不会改变键盘 Tab 顺序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须明确视觉顺序与 DOM 顺序的关联,CSS 不影响 tab 顺序。
围绕“当点击一个按钮打开弹出面板(popover)时,焦点是否应移动到面板内?请说出标准做法”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明是否移入,根据面板复杂度,简单建议保留在按钮或移入第一个焦点项。
围绕“:focus-visible 伪类与 :focus 有什么区别?在设置焦点样式时应如何选择”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 :focus-visible 仅针对键盘,避免鼠标点击出现焦点环。