从互联网整理而来
一、基础概念与运行机制
- 小程序与H5、App的核心区别
- 小程序双线程模型分别是什么,各自职责
- 逻辑层与视图层通信方式
- 小程序渲染流程完整过程
- 小程序启动流程(冷启动、热启动)
- 冷启动和热启动的差异
- 小程序分包加载机制概念
- 主包与分包限制规则
- 独立分包和普通分包区别
- 小程序的生命周期分类(应用、页面、组件)
- 小程序页面栈规则,最多存放多少页面
- 小程序登录流程整体逻辑
- 微信授权两种类型区别(基础授权、隐私授权)
- 小程序原生宿主环境提供哪些能力
- 小程序更新机制,静默更新与主动更新
二、文件结构与配置
- 小程序四种核心文件作用(json/wxml/wxss/js)
- app.json 全局配置常用字段
- page.json 页面配置优先级与app.json关系
- sitemap.json 作用
- project.config.json 用途
- app.js 全局App实例生命周期
- 页面js Page构造器生命周期
- 组件js Component构造器生命周期
- usingComponents 引入组件配置
- 全局样式app.wxss和页面wxss权重规则
- wxss与css差异,特有特性
- rpx单位换算规则,适配原理
- 小程序支持的选择器有哪些,不支持哪些
- 图片、静态资源本地与线上引入规则
- 分包配置subpackages字段参数含义
三、WXML 模板语法
- WXML数据绑定语法规则
- 插值表达式支持哪些运算
- wx:if、wx:elif、wx:else 条件渲染
- hidden属性与wx:if性能差异
- wx:for列表渲染,wx:key作用
- wx:key使用规范,禁止index的场景
- block标签作用,是否生成真实节点
- 模板template定义与引入,数据传递
- wxs脚本作用,运行环境限制
- wxs与js的区别,能否调用小程序API
- 事件绑定bind、catch、capture-bind区别
- mut-bind互斥事件作用
- 事件传参几种实现方式
- 数据双向绑定model语法
- 标签属性布尔值绑定规则
四、组件系统(原生+自定义组件)
- 小程序自定义组件创建完整结构
- Component中properties传参配置规则
- properties三种数据监听方式
- data、properties、observers执行顺序
- observers监听对象、数组深层变化写法
- 组件生命周期完整钩子
- lifetimes与pageLifetimes区别
- 组件插槽slot,具名插槽使用
- 组件父子通信方式
- triggerEvent触发自定义事件传参
- selectComponent、selectAllComponents获取子组件
- behaviors复用逻辑,合并规则
- 原生内置常用容器、表单、媒体组件
- scroll-view滚动注意事项
- movable-area、movable-view实现拖拽原理
- canvas新旧版本差异,2d画布使用
- web-view嵌入H5通信方案
- cover-view、cover-image使用限制场景
- 自定义组件样式隔离options配置
- 组件pureDataPattern作用
五、数据管理与渲染更新
- setData底层更新原理
- setData频繁调用性能问题
- setData单次数据大小限制
- 局部更新数据简写写法
- 直接修改this.data不调用setData为什么不更新视图
- 复杂对象、数组更新setData写法
- 全局数据共享几种方案
- getApp()全局变量优缺点
- globalData跨页面同步更新缺陷
- 数据本地持久化storage存储限制
- wx.setStorage同步异步API区别
- storage大数据存储优化方案
- 页面间数据传递方式对比
- 页面栈取上一页实例方法
- 大数据列表渲染卡顿优化思路
六、路由与页面跳转
- 五种路由API区别(navigateTo/redirectTo/reLaunch/switchTab/navigateBack)
- switchTab跳转限制条件
- navigateTo无法跳tab页面解决方案
- 路由传参两种方式,长参数丢失问题
- 页面返回监听onUnload、onShow触发时机
- 获取当前页面栈方法getCurrentPages()
- 路由拦截统一封装思路
- tabBar配置规则,自定义tabBar实现
- 自定义tabBar踩坑点
- 页面跳转后保留表单状态方案
七、网络请求与后端交互
- wx.request请求基础配置
- request合法域名校验规则,开发环境规避
- 小程序请求携带cookie机制
- 请求header统一封装token思路
- 拦截器封装wx.request方案
- 并发请求、请求超时处理
- 文件上传wx.uploadFile参数配置
- 文件下载wx.downloadFile使用场景
- websocket实时通信完整流程
- socket断线重连实现逻辑
- 接口返回加密数据解密处理
- 批量请求统一捕获异常
- 小程序不支持跨域的根本原因
- 上传图片压缩、裁剪处理
- 上传进度监听API
八、登录、授权、用户信息
- wx.login获取code作用
- code换取openid完整流程
- openid、unionid区别与生成规则
- 隐私保护新规下获取用户头像昵称方案
- getUserInfo接口废弃替代方案
- 手机号一键登录流程
- 授权scope各权限含义
- 用户拒绝授权后重新引导授权逻辑
- 登录态session_key过期处理
- 第三方登录、关联账号实现
- 登录状态持久化存储方案
- 多端打通unionid获取条件
- 隐私协议弹窗实现规范
- 小程序订阅消息下发流程
- 模板消息与订阅消息区别
九、媒体、图片、地图、设备API
- wx.chooseMedia选择图片视频参数
- 图片预览wx.previewImage使用
- 图片本地缓存方案
- 录音、播放音频API使用
- video视频播放常见问题
- map地图组件标记、覆盖物绘制
- 获取当前定位wx.getLocation权限配置
- 后台持续定位配置要求
- 设备信息、系统API获取
- 振动、剪贴板、屏幕亮度API
- 扫码wx.scanCode场景
- 蓝牙BLE设备连接流程
- NFC基础使用场景
- 相机camera组件适配
- 文件管理FileSystemManager读写文件
十、性能优化专项
- setData性能优化手段
- 长列表渲染优化方案
- 虚拟列表实现思路
- 分包加载优化首屏速度
- 图片懒加载处理
- 减少页面、组件层级嵌套
- wxss样式体积压缩优化
- 分包预加载preloadRule配置
- 避免频繁创建定时器、监听事件
- 页面卸载清除所有订阅、定时器
- 包体积超限优化方案
- 开发者工具性能面板排查卡顿
- 避免在onShow频繁请求接口
- 图片资源压缩、webp适配
- 减少observers深层监听开销
十一、适配、兼容、多端
- rpx、px、rem转换关系
- 刘海屏、安全区适配css写法
- 深色模式适配配置
- 不同微信版本API兼容处理
- caniuse判断接口是否可用
- 小程序转H5、转uni-app差异
- 平板、PC端小程序适配要点
- 低版本微信兼容降级方案
- 字体、图片多设备适配
- 自定义导航栏适配胶囊按钮
十二、工程化、第三方框架
- 原生小程序、uni-app、Taro区别
- Taro编译原理,多端适配逻辑
- uni-app分包、条件编译写法
- 小程序npm依赖使用规则
- 按需引入UI组件库优化
- 工程化打包、环境变量区分
- 多环境请求域名配置
- ESLint校验小程序代码规范
- Git协同开发规范
- CI自动上传小程序工具
十三、支付、分享、广告、业务能力
- 小程序支付完整流程
- 支付回调后端处理逻辑
- 分享onShareAppMessage、onShareTimeline配置
- 分享图、分享路径动态处理
- 分享到朋友圈限制条件
- 插屏广告、激励视频广告接入
- 小程序跳转其他小程序API
- 跳转限制与关联配置要求
- 客服消息接入流程
- 商品卡片、搜索收录配置sitemap
十四、安全、审核、合规
- 小程序合法域名、业务域名、web-view域名区别
- 前端存储敏感信息安全风险
- session_key不能传输到前端原因
- 接口数据防篡改简单方案
- 隐私合规要求有哪些
- 图片、内容审核API调用
- 小程序常见审核驳回原因
- 诱导分享、诱导支付违规点
- 本地存储数据加密思路
- 防止恶意刷接口方案
十五、实战场景综合题
- 项目整体目录架构设计
- 封装通用请求库完整思路
- 全局登录拦截、未登录跳转实现
- 大型表单组件封装与校验
- 多页面共享登录状态管理
- 列表上拉加载、下拉刷新封装
- 图片上传、预览、删除完整流程
- 分包改造解决主包体积超限
- 页面返回保留搜索条件、分页数据
- 小程序热更新主动检测逻辑
- websocket聊天断线重连方案
- 自定义tabBar遇到的坑与解决
- 页面大量数据滑动卡顿优化
- 线上白屏、加载失败排查思路
- 原生小程序迁移Taro/uni改造方案