微信小程序全套知识点完整总结

发布时间:2026/7/20 13:12:30
微信小程序全套知识点完整总结 微信小程序全套知识点完整总结一、小程序基础认知1. 宿主环境核心概念宿主环境是程序运行依赖的载体微信App是小程序唯一宿主依托安卓/iOS系统运行可调用微信独有能力扫码、支付、定位、登录等普通网页无法实现的功能。宿主环境四大组成通信模型、运行机制、内置组件、微信API。2. 双层通信架构小程序分为渲染层WXMLWXSS、逻辑层JS两层通信全部由微信Native客户端转发渲染层 ↔ 逻辑层用户操作触发事件、数据双向更新逻辑层 ↔ 第三方服务器网络请求、数据响应全部经过微信中转3. 完整启动页面渲染流程1小程序整体启动步骤下载小程序代码包至本地解析全局配置app.json执行app.js调用App()创建小程序全局实例渲染pages数组首位页面首页小程序启动完成2单页面渲染步骤解析当前页面.json配置加载页面WXML模板 WXSS样式执行页面.js调用Page()创建页面实例页面渲染完成二、小程序项目文件结构与四类JSON配置一项目整体目录根目录核心文件app.js全局入口逻辑app.json全局窗口、页面路径配置app.wxss全局公共样式project.config.json开发者工具个性化配置sitemap.json搜索索引配置pages/所有页面文件夹每个页面4文件js/json/wxml/wxssutils/公共工具函数二四类JSON配置详解1. app.json全局配置优先级最低核心配置项pages[]页面路径数组数组第一项为首页新增页面只需在此追加路径工具自动生成页面4个文件window全局导航栏样式navigationBarBackgroundColor导航栏背景色十六进制navigationBarTitleText导航栏文字navigationBarTextStyle文字仅支持black/white页面配置会覆盖app.json相同window属性2. 页面page.json单页面配置优先级高于全局仅作用当前页面可单独修改当前页导航栏颜色、标题、引入自定义组件{navigationBarBackgroundColor:#f60bb6,usingComponents:{}}3. sitemap.json搜索SEO索引配置作用控制微信爬虫是否收录页面匹配搜索关键词后展示小程序页面。{rules:[{action:allow,page:*}]}action: allow允许索引disallow禁止对应页面索引page: *代表全部页面checkSiteMap 与 action 核心区别actionsitemap.json内控制页面是否被爬虫收录业务功能开关上线生效checkSiteMapproject.config.json setting仅控制开发者工具控制台是否弹出索引提示纯调试开关设为false关闭提示不影响线上搜索收录4. project.config.json工具配置仅本地生效存储编辑器、编译、调试设置不参与线上发布。三、四大核心技术栈WXML / WXSS / JS / JSON1. WXML页面结构对标HTML1WXML vs HTML 三大差异标签完全不同HTMLdiv、span、img、aWXMLview、text、image、navigator跳转语法不同HTMLa href地址WXMLnavigator url/pages/xxx/xxx内置模板语法数据绑定、条件渲染、列表渲染2WXML核心模板语法① 数据绑定 Mustache{{}}数据定义在页面js的data对象中双大括号渲染支持4类场景绑定文本内容view{{info}}/view绑定标签属性image src{{imgSrc}}/image三元运算view{{num5?大:小}}/view算术运算view{{num*100}}/view调试开发者工具AppData面板可实时查看data数据② 事件绑定渲染层→逻辑层通信事件是用户交互传递数据的唯一方式核心事件事件绑定写法作用tapbindtap点击替代clickinputbindinput输入框内容变化changebindchange状态切换事件对象event核心属性target触发事件的源头组件冒泡场景currentTarget绑定事件的当前组件detailinput输入值、滑动数值等附加数据修改data数据this.setData({键:值})触发页面刷新事件传参不能直接传参用data-自定义名{{值}}函数内e.target.dataset.自定义名获取双向绑定inputinput value绑定databindinput实时同步更新data③ 条件渲染wx:if / wx:elif / wx:else动态创建/销毁节点复杂判断推荐多组件用block wx:if包裹block无渲染hidden{{布尔}}仅CSS隐藏display:none频繁切换推荐区别wx:if会销毁DOMhidden只是样式隐藏④ 列表渲染 wx:for基础循环view wx:for{{数组}}{{index}}-{{item}}/viewindex下标item数组单项自定义下标/项wx:for-indexidx wx:for-itemobjwx:key指定列表唯一标识id/index提升列表渲染性能2. WXSS页面样式对标CSSWXSS 扩展限制新增rpx自适应单位以750rpx为屏幕满宽自动适配所有手机无需rem换算样式分层根目录app.wxss全局生效页面.wxss仅当前页面生效仅支持部分CSS选择器class、id、元素、后代、伪类after/before等不支持复杂嵌套3. JS逻辑文件三类JSapp.js全局入口App()初始化小程序存储全局数据、全局生命周期页面.js页面入口Page()创建页面实例data存储页面数据、页面事件、生命周期普通utils/js公共工具函数模块化引入复用四、小程序内置九大组件1. 视图容器组件布局核心view等同于div块级布局支持flex弹性布局scroll-view滚动容器横向scroll-x/纵向scroll-y滚动必须设置固定高度swiper/swiper-item轮播图常用属性indicator-dots指示点、autoplay自动轮播、interval间隔、circular无缝轮播2. 基础文本组件text纯文本selectable开启长按复制文字rich-text通过nodes属性渲染HTML富文本商品详情场景3. 媒体图片 image默认尺寸宽300px、高240pxsrc路径/代表项目根目录mode缩放模式scaleToFill拉伸铺满、aspectFit完整显示、aspectFill裁剪铺满、widthFix宽度自适应4. 表单按钮 buttontypeprimary主色、warn警告、默认sizemini小尺寸plain镂空按钮open-type可调用微信授权、客服、转发能力5. 导航 navigator等同于a标签url跳转页面其余组件表单、地图map、画布canvas、开放能力、无障碍组件五、小程序API分类小程序所有能力通过wx.xxx调用分3大类事件监听API以on开头wx.onWindowResize监听系统事件同步API以Sync结尾wx.setStorageSync直接返回结果出错抛异常异步APIwx.request网络请求等通过success/fail/complete回调接收结果六、协同开发、版本管理与发布全流程1. 项目组织架构项目经理统筹四大团队产品需求→设计UI→开发编码→测试验收2. 两类后台成员项目成员开发者/运营/数据分析师可登录管理后台、上传代码、配置体验成员仅内测扫码体验无后台权限管理员/开发者均可添加3. 小程序4种版本开发版本开发者工具上传本地开发提交可删除体验版本从开发版本选取给内测人员测试审核中版本提交腾讯官方审核仅一份待审版本线上版本所有用户可访问审核通过发布覆盖旧版4. 完整发布步骤开发者工具点击【上传】填写版本号、备注提交开发版本登录小程序后台 → 管理 → 版本管理查看上传代码选中开发版本【提交审核】填写类目、功能说明腾讯审核通过后后台点击【发布】全量上线5. 运营与推广小程序码辨识度高于普通二维码后台【设置-基本信息】下载用于线下推广数据查看两种方式小程序管理后台-统计面板微信搜「小程序数据助手」小程序查看实时数据七、整体学习目标总结掌握项目创建、开发者工具使用、AppID获取清晰小程序完整目录与四类JSON配置优先级熟练WXML模板语法数据绑定、事件、条件/列表渲染使用WXSS rpx单位完成页面布局美化全局app.json、页面page.json差异化配置常用内置组件view/swiper/image/button实战小程序网络请求wx.request使用团队协同、成员管理、代码上传审核发布全流程补充关键易混点汇总首页修改调整app.json pages数组第一项页面自动生成pages数组新增路径工具自动创建4页面文件导航栏样式页面json app.json windowsitemap提示开关checkSiteMap≠ 页面收录开关actionwx:if销毁节点hidden仅隐藏样式循环必须加wx:key优化性能事件不能直接传参依靠data-*自定义属性传递参数JS无DOM/BOM只能通过setData驱动页面更新代码发布必须经腾讯审核审核通过才能对外提供访问需要我把这份总结整理成PPT逐页文案每页标题要点配图说明直接可用吗