logo资料库

小程序开发指南-完整版-20180320.pdf

第1页 / 共195页
第2页 / 共195页
第3页 / 共195页
第4页 / 共195页
第5页 / 共195页
第6页 / 共195页
第7页 / 共195页
第8页 / 共195页
资料共195页,剩余部分请下载后查看
使用规范和版权声明 1. 此教程文档为腾讯公司微信团队所撰写,供学习小程序开发技术所用。微信团队享有此文档 的全部知识产权,包括但不限于进行修改、复制、发行、表演、展览、信息网络传播、改编、翻译、 汇编等权利。 2. 用户可以根据学习需求,来阅读使用本文档。任何个人或机构如需转载此文档,或要将此文 档的内容以多媒体的形式进行改编或创作,必须注明源文档出处:“开发教程源文档来自微信团队”。 未经许可,任何个人或机构请勿擅自对文档的内容进行修改,微信团队保留对文档的最终解释权。 3. 微信团队有权根据互联网和微信产品的发展、相关法律法规及规范性文件的规定,不断修改 和完善文档的相关内容,用户可以在相关页面查阅最新版本的文档。 版权所有,侵权必究 微信团队 1
本书说明 本书会分成 2 部分对小程序的基础开发和技术细节做详细的讲解,阅读本书第一部分前,读者 需要具备一定的程序开发知识(熟悉任意一门程序语言),如果读者掌握网页开发的知识,阅读将 会更轻松并且会有更深刻的理解。如果读者已经充分掌握小程序的开发技巧,建议可以直接阅读第 二部分,我们会在第二部分对小程序的底层技术背景和相关细节进行展开。 由于小程序的组件和 API 非常多,我们并不想在本书中罗列所有组件和 API 的参数说明以及 使用方式,我们更希望把基本的使用方式和技巧叙述给读者,详细的组件和 API 使用方式可以在 官方文档找到对应的说明。此外,我们会在本书的第四章对常见的应用场景进行讲解,读者可以在 第四章中了解到各类组件和 API 的使用场景及技巧。 小程序的环境会随着微信版本的更新而变动,本书的开始撰写时间是 2017 年 12 月 11 日,微 信 iOS / 安卓版本为 6.5.23,小程序基础库版本为 1.7.0,书中示例出现的组件和 API 可能在后续 的版本有部分变动,请读者留意官方文档说明: https://mp.weixin.qq.com/debug/wxadoc/dev/index.html。 有时候我们用英文上的术语或者中文一些简称会更好表述和强调,因此在没有特殊说明的情况 下,我们约定以下术语:用 Webview 来表示浏览器;Native 表示微信客户端;工具表示小程序开 发者工具;JS 是 Javascript 的简称。还有为了加强读者对组件标签的认识,一般我们在提到小程序 组件时,会采用英文标签名+中文组件名作为描述,例如 button 按钮组件,view 容器组件。 书中的代码缩进采用 2 个空格,每个语句后边不带分号,一段简短的代码示例如下。 Page({ onLoad: function () { this.setData({ msg: 'Hello World' }) } }) 2
目录 使用规范和版权声明............................................................................................................................1 本书说明................................................................................................................................................2 目录........................................................................................................................................................3 第 1 章 小程序介绍与开发环境........................................................................................................10 1.1 小程序介绍..............................................................................................................................10 1.1.1 小程序技术发展历史......................................................................................................10 1.1.2 小程序与普通网页开发的区别......................................................................................12 1.2 小程序的特色..........................................................................................................................13 1.3 小程序开发准备......................................................................................................................14 1.3.1 申请 AppID......................................................................................................................14 1.3.2 安装开发者工具..............................................................................................................15 1.3.3 第一个小程序..................................................................................................................17 1.4 本章小结..................................................................................................................................19 第 2 章 小程序代码组成....................................................................................................................20 2.1 JSON 配置.............................................................................................................................. 20 2.1.1 一个例子..........................................................................................................................20 2.1.2 JSON 语法...................................................................................................................... 21 2.2 WXML 模板........................................................................................................................... 24 2.2.1 介绍..................................................................................................................................24 2.2.2 数据绑定..........................................................................................................................26 2.2.3 逻辑语法..........................................................................................................................29 2.2.4 条件逻辑..........................................................................................................................30 2.2.5 列表渲染..........................................................................................................................30 2.2.6 模板..................................................................................................................................34 2.2.7 引用..................................................................................................................................36 2.2.8 共同属性..........................................................................................................................37 2.3 WXSS 样式.............................................................................................................................38 2.3.1 文件组成..........................................................................................................................39 3
2.3.2 尺寸单位..........................................................................................................................40 2.3.3 WXSS 引用......................................................................................................................41 2.3.4 内联样式..........................................................................................................................42 2.3.5 选择器..............................................................................................................................43 2.3.6 官方样式库......................................................................................................................44 2.4 JavaScript 脚本....................................................................................................................... 46 2.4.1 ECMAScript.....................................................................................................................46 2.4.2 小程序的执行环境..........................................................................................................48 2.4.3 模块化..............................................................................................................................49 2.4.4 脚本的执行顺序..............................................................................................................50 2.4.5 作用域..............................................................................................................................53 2.5 本章小结..................................................................................................................................54 第 3 章 理解小程序宿主环境............................................................................................................55 3.1 渲染层和逻辑层......................................................................................................................55 3.1.1 渲染“Hello World”页面...................................................................................................55 3.1.2 通信模型..........................................................................................................................56 3.1.3 数据驱动..........................................................................................................................57 3.1.4 双进程下的界面渲染......................................................................................................59 3.2 程序与页面..............................................................................................................................59 3.2.1 程序..................................................................................................................................59 3.2.2 页面..................................................................................................................................63 3.3 组件..........................................................................................................................................72 3.4 API........................................................................................................................................... 74 3.5 事件..........................................................................................................................................75 3.5.1 什么是事件......................................................................................................................75 3.5.2 事件类型和事件对象......................................................................................................77 3.5.3 事件绑定与冒泡捕获......................................................................................................79 3.6 兼容..........................................................................................................................................81 3.7 本章小结..................................................................................................................................83 第 4 章 场景应用................................................................................................................................84 4.1 开发流程基本介绍..................................................................................................................84 4
4.2 基本的布局方法——Flex 布局..............................................................................................85 4.2.1 基本概念.............................................................................................................................86 4.2.2 容器属性.............................................................................................................................88 4.2.3 项目属性.............................................................................................................................94 4.3 界面常见的交互反馈............................................................................................................100 4.3.1 触摸反馈........................................................................................................................100 4.3.2 Toast 和模态对话框...................................................................................................... 103 4.3.3 界面滚动........................................................................................................................105 4.4 发起 HTTPS 网络通信..........................................................................................................107 4.4.1 wx.request 接口............................................................................................................. 107 4.4.2 服务器接口....................................................................................................................108 4.4.3 请求参数........................................................................................................................108 4.4.4 收到回包........................................................................................................................110 4.4.5 一般使用技巧................................................................................................................ 111 4.4.6 排查异常的方法............................................................................................................112 4.5 微信登录................................................................................................................................113 4.1.1 获取微信登录凭证 code............................................................................................... 114 4.5.1 发送 code 到开发者服务器.......................................................................................... 115 4.5.2 到微信服务器换取微信用户身份 id............................................................................116 4.5.3 绑定微信用户身份 id 和业务用户身份.......................................................................117 4.5.4 业务登录凭证 SessionId............................................................................................... 117 4.6 本地数据缓存........................................................................................................................118 4.6.1 读写本地数据缓存........................................................................................................118 4.6.2 缓存限制和隔离............................................................................................................120 4.6.3 利用本地缓存提前渲染界面........................................................................................120 4.6.4 缓存用户登录态 SessionId........................................................................................... 122 4.7 设备能力................................................................................................................................124 4.7.1 利用微信扫码能力........................................................................................................125 4.7.2 获取网络状态................................................................................................................125 4.8 本章小结................................................................................................................................127 第 5 章 小程序的协同工作和发布..................................................................................................128 5
5.1 协同工作................................................................................................................................128 5.1.1 人员组织结构和权限分配............................................................................................128 5.1.2 小程序的版本................................................................................................................130 5.2 用户体验审视........................................................................................................................131 5.2.1 产品和运营思路............................................................................................................131 5.2.2 体验和设计评估............................................................................................................132 5.2.3 用户体验测试和完善体验............................................................................................137 5.3 发布........................................................................................................................................138 5.3.1 发布前最后的检查........................................................................................................138 5.3.2 发布模式........................................................................................................................138 5.3.3 小程序码........................................................................................................................139 5.4 运营........................................................................................................................................139 5.4.1 数据分析........................................................................................................................140 5.4.2 运维中心........................................................................................................................142 5.4.3 微信开发者社区............................................................................................................142 5.5 本章小结................................................................................................................................143 第 6 章 底层框架..............................................................................................................................145 6.1 双线程模型............................................................................................................................145 6.1.1 技术选型........................................................................................................................145 6.1.2 管控与安全....................................................................................................................147 6.1.3 天生的延时....................................................................................................................148 6.2 组件系统................................................................................................................................149 6.2.1 Exparser 框架.................................................................................................................149 6.2.2 内置组件........................................................................................................................150 6.2.3 自定义组件....................................................................................................................150 6.3 原生组件................................................................................................................................154 6.3.1 原生组件运行机制........................................................................................................154 6.3.2 原生组件渲染限制........................................................................................................157 6.4 小程序与客户端通信原理....................................................................................................158 6.4.1 视图层组件....................................................................................................................158 6.4.2 逻辑层接口....................................................................................................................158 6
6.5 本章小结................................................................................................................................158 第 7 章 性能优化..............................................................................................................................160 7.1 启动........................................................................................................................................160 7.1.1 代码包下载....................................................................................................................161 7.1.2 分包加载流程................................................................................................................162 7.1.3 代码包加载....................................................................................................................163 7.2 页面层级准备........................................................................................................................164 7.3 数据通信................................................................................................................................166 7.3.1 页面初始数据通信........................................................................................................166 7.3.2 更新数据通信................................................................................................................167 7.3.3 用户事件通信................................................................................................................168 7.4 视图层渲染............................................................................................................................169 7.4.1 初始渲染........................................................................................................................169 7.4.2 重渲染............................................................................................................................171 7.5 原生组件通信........................................................................................................................171 7.6 本章小结................................................................................................................................172 第 8 章 小程序基础库的更新迭代..................................................................................................174 8.1 小程序基础库........................................................................................................................174 8.1.1 基础库载入时机............................................................................................................174 8.1.2 基础库的版本号............................................................................................................175 8.2 异常........................................................................................................................................177 8.2.1 JS 运行异常................................................................................................................... 177 8.2.2 捕捉 JS 异常的方法...................................................................................................... 178 8.3 基础库的更新........................................................................................................................180 8.3.1 基础库版本变动............................................................................................................180 8.3.2 推送基础库过程............................................................................................................181 8.4 本章小结................................................................................................................................181 第 9 章 微信开发者工具..................................................................................................................182 9.1 简介........................................................................................................................................182 9.2 代码编译................................................................................................................................183 9.2.1 编译 WXML.................................................................................................................. 183 7
9.2.2 编译 WXSS....................................................................................................................185 9.2.3 编译 JavaScript.............................................................................................................. 186 9.3 模拟器....................................................................................................................................187 9.3.2 逻辑层模拟....................................................................................................................188 9.3.3 渲染层模拟....................................................................................................................191 9.3.4 客户端模拟....................................................................................................................191 9.3.5 通讯模拟........................................................................................................................191 9.4 调试器....................................................................................................................................192 9.5 本章小结................................................................................................................................195 8
分享到:
收藏