第1章 初识Taro 1 1.1 Taro介绍 2 1.1.1 简介 2 1.1.2 特性 2 1.1.3 Taro UI 4 1.1.4 其他 5 1.2 ES 6常用语法简介 5 1.2.1 变量定义新方式——let、const 5 1.2.2 告别字符串拼接——模板字符串 7 1.2.3 优雅获取数组或对象中的值——解构赋值 8 1.2.4 二次元函数——箭头函数 9 1.2.5 异步处理——Promise 9 1.2.6 面向对象编程——class 11 1.2.7 模块化——import、export 12 1.3 开发环境及工具介绍 12 1.3.1 安装Taro脚手架工具 12 1.3.2 初始化项目 13 1.3.3 运行项目 13 1.3.4 打包项目 15 1.3.5 Taro脚手架命令 15 1.4 规范约定 18 1.4.1 项目组织 18 1.4.2 JavaScript / TypeScript书写规范 19 1.4.3 组件及JSX书写规范 20 1.5 本章小结 21 第2章 Taro基础 22 2.1 JSX 23 2.1.1 JSX简介 23 2.1.2 JSX语法 23 2.2 组件化 25 2.2.1 初识组件 26 2.2.2 组件定义 27 2.2.3 props 29 2.2.4 state 30 2.2.5 样式 31 2.3 组件生命周期 33 2.3.1 组件挂载 34 2.3.2 组件更新 34 2.3.3 组件卸载 35 2.4 事件处理 36 2.5 路由功能 40 2.6 实战案例:受控与非受控Input组件 42 2.7 本章小结 44 第3章 Taro进阶 45 3.1 组件设计 46 3.2 组件通信 47 3.2.1 父子组件通信 47 3.2.2 兄弟组件通信 49 3.2.3 更复杂的组件通信 49 3.3 服务端通信 52 3.3.1 Taro.request 52 3.3.2 请求终止 54 3.3.3 请求拦截器 55 3.4 使用Ref 56 3.5 本章小结 59 第4章 集中状态管理 60 4.1 Redux 61 4.1.1 Redux 设计理念 61 4.1.2 在Taro中使用Redux 63 4.1.3 Redux 案例 65 4.2 MobX 69 4.2.1 MobX 设计理念 69 4.2.2 在Taro中使用MobX 69 4.3 本章小结 73 第5章 Hooks 74 5.1 Hooks 简介 75 5.1.1 class组件的不足 75 5.1.2 Hooks概览 76 5.1.3 Hooks规则 80 5.2 Hooks基础 80 5.2.1 useState 81 5.2.2 useEffect 81 5.2.3 useReducer 83 5.2.4 useCallback 85 5.2.5 useMemo 86 5.2.6 useRef 87 5.2.7 useContext 88 5.2.8 其他Hooks 88 5.3 自定义Hooks 91 5.4 本章小结 94 第6章 多端开发 95 6.1 编译配置与约定 96 6.1.1 编译配置 96 6.1.2 设计稿与尺寸单位约定 98 6.2 多端开发方案 100 6.2.1 内置环境变量 100 6.2.2 统一接口的多端文件 101 6.2.3 指定解析 node_modules 包中的多端文件 103 6.3 多端同步调试与打包 104 6.4 本章小结 105 第7章 Taro UI 106 7.1 安装及使用 107 7.1.1 快速上手 107 7.1.2 自定义主题 108 7.2 组件介绍 110 7.3 本章小结 111 第8章 插件机制 112 8.1 插件机制简介 113 8.2 插件使用 115 8.3 自定义插件 117 8.3.1 插件结构 117 8.3.2 插件使用场景 117 8.3.3 插件环境变量 120 8.3.4 插件方法 122 8.4 本章小结 127 第9章 性能优化与原理剖析 128 9.1 性能优化 129 9.1.1 Prerender 129 9.1.2 虚拟列表 133 9.1.3 组件更新条件 134 9.2 Taro框架原理 135 9.2.1 Taro框架结构分析 136 9.2.2 Taro编译原理 138 9.2.3 Taro运行时 144 9.3 Taro 3.x原理概述 146 9.4 本章小结 155 第10章 多端开发环境搭建 156 10.1 微信小程序开发环境搭建 157 10.2 支付宝小程序开发环境搭建 158 10.3 React Native开发环境搭建 160 10.3.1 在macOS系统下搭建iOS开发环境 160 10.3.2 在macOS系统下搭建Android开发环境 160 10.3.3 在Windows系统下搭建Android开发环境 162 10.3.4 使用Taro开发 iOS应用 162 10.3.5 使用Taro开发Android应用 164 10.4 本章小结 166 第11章 闲置换App开发实践 167 11.1 项目介绍 168 11.1.1 项目背景 168 11.1.2 项目需求 168 11.1.3 项目核心功能设计 169 11.1.4 项目架构设计 171 11.1.5 项目接口mock 172 11.2 基础功能开发 172 11.2.1 通用请求库封装 172 11.2.2 引入dva 174 11.2.3 定义请求服务 177 11.2.4 为H5配置请求代理 179 11.3 自定义导航器 182 11.3.1 需求分析 182 11.3.2 微信小程序端开发 184 11.3.3 H5端开发 188 11.3.4 React Native端开发 190 11.4 首页开发 194 11.4.1 搜索组件 194 11.4.2 瀑布流图片组件 198 11.4.3 轮播图组件 203 11.4.4 数据联调 205 11.5 消息页开发 216 11.5.1 定义底部导航 216 11.5.2 消息列表页开发 219 11.5.3 聊天页面开发 221 11.6 商品详情页开发 239 11.7 项目优化与发布 259 11.7.1 项目优化 259 11.7.2 项目打包发布 271 11.8 本章小结 280 第12章 拥抱Taro 3 281 12.1 Taro 演进历程 282 12.1.1 Taro 1.x 282 12.1.2 Taro 2.x 282 12.1.3 Taro 3.x 284 12.2 使用Taro 3 285 12.2.1 React模板 285 12.2.2 Vue模板 288 12.3 本章小结 290