登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』微信小程序开发入门与实践

書城自編碼: 2988521
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: 雷磊
國際書號(ISBN): 9787302468011
出版社: 清华大学出版社
出版日期: 2017-04-01
版次: 1 印次: 1
頁數/字數: 350/589000
書度/開本: 16开 釘裝: 平装

售價:NT$ 497

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
波段交易的高级技术:股票和期权交易者的资金管理、规则、策略和程序指南
《 波段交易的高级技术:股票和期权交易者的资金管理、规则、策略和程序指南 》

售價:NT$ 442.0
人,为什么需要存在感:罗洛·梅谈死亡焦虑
《 人,为什么需要存在感:罗洛·梅谈死亡焦虑 》

售價:NT$ 381.0
锁国:日本的悲剧
《 锁国:日本的悲剧 》

售價:NT$ 437.0
AI智能写作: 巧用AI大模型 让新媒体变现插上翅膀
《 AI智能写作: 巧用AI大模型 让新媒体变现插上翅膀 》

售價:NT$ 330.0
家庭养育七步法5:理解是青春期的通关密码
《 家庭养育七步法5:理解是青春期的通关密码 》

售價:NT$ 279.0
三体(全三册)
《 三体(全三册) 》

售價:NT$ 512.0
天象之维:汉画像中的天文与人文
《 天象之维:汉画像中的天文与人文 》

售價:NT$ 490.0
妓女与文人
《 妓女与文人 》

售價:NT$ 179.0

建議一齊購買:

+

NT$ 431
《 微信小程序开发图解案例教程(附精讲视频) 》
+

NT$ 425
《 微信小程序:开发入门及案例详解 》
+

NT$ 287
《 微信小程序快速开发(视频指导版) 》
+

NT$ 570
《 亿级流量网站架构核心技术——跟开涛学搭建高可用高并发系统 》
+

NT$ 353
《 微信公众平台与小程序开发 从零搭建整套系统 》
+

NT$ 425
《 从零开始学微信小程序开发 》
編輯推薦:
以Orange Can项目为主线,深入浅出地介绍微信小程序的基本结构、开发模式、组件应用、数据绑定方法、微信API使用、微信与设备硬件交互、微信支付等内容根据微信小程序公开上线新版本编写,总结小程序开发中踩过的坑、常见的开发误区以及开发心得,让你减少试错时间,快速开发出自己的小程序
內容簡介:
本书主要围绕Orange Can项目展开一系列编码工作,用几近真实的项目介绍小程序的各个API、组件用法,并附带一些小程序开发的经验、技巧以及常见的误区说明。整个Orange Can项目分为三部分:文章阅读、电影资讯以及设置。文章阅读包括文章列表、文章详情以及评论,通过编写文章阅读功能的代码,读者将学会swiper组件的裁剪模式、image组件的裁剪模式、缓存的使用技巧、列表渲染、数据绑定、模板、音乐播放、录音、分享等知识。除此之外,读者将对小程序页面的生命周期有一个大致了解。学习完这部分内容,读者将可以轻松做出一个内容型小程序应用。电影资讯功能主要介绍如何调用服务器数据及template模板的使用技巧。设置页面功能包含大量功能示例,包括获取硬件设备信息、罗盘与重力感应的应用、扫描二维码、用户登录、用户信息校验、解析用户加密数据、获取用户openId、发送模板消息、微信支付等功能。
本书还提供部分服务器的PHP代码,主要供用户登录、校验、解析加密数据、模板消息、微信支付等功能调用。
本书内容丰富、注重实战,讲解通俗易懂。适合小程序开发人员、培训机构和企业内部培训使用。
關於作者:
雷磊,8年研发及团队管理经验。曾就职于国内*的GIS公司互联网部门,任职研发经理。精通C#、Python、Java、JavaScript等语言与Web开发技术。工作之余经常撰写有关互联网技术、商业模式等文章,发表在各个TMT媒体上。微信小程序首批内测开发者,知乎专栏小楼昨夜又秋风作者。
目錄
目录第1章 微信小程序简介 11.1 什么是微信小程序 21.2 什么类型的应用适合用小程序开发 51.3 小程序与原生App(iOS、Android)的优劣对比 61.4 小程序会淘汰原生App吗 101.5 Web前端的未来 101.6 Web前端开发者与小程序 111.7 MINA框架与微信小程序 121.8 微信小程序beta测试版 12第2章 小程序环境搭建与开发工具介绍 132.1 微信Web开发者工具下载及安装 142.2 新建第一个项目 142.3 微信Web开发者工具界面功能介绍 162.3.1 编辑选项卡 172.3.2 调试选项卡 192.3.3 项目选项卡 222.3.4 编译选项 232.3.5 后台选项 242.3.6 缓存选项 242.3.7 关闭选项 242.3.8 快速打开官方API文档 242.3.9 开发工具的更新 242.3.10 常用小程序快捷键 25第3章 从第一个简单的Welcome页面开始小程序之旅 263.1 认识小程序的基本文件结构 273.2 开始动手编写第一个小程序页面 283.3 构建welcome页面的元素和样式 313.4 小程序所支持的CSS选择器 353.5 Flex布局 363.6 小程序自适应单位rpx简介 393.7 全局样式文件app.wxss 423.8 页面的根元素page 423.9 app.json中的window配置项 44第4章 文章列表页面 474.1 文章列表页面元素分析及准备工作 484.2 swiper组件 504.3 Boolean值的陷阱 534.4 构建文章列表的骨架和样式 544.5 image组件的4种缩放模式与9种裁剪模式 574.5.1 scaleToFill 584.5.2 aspectFit 584.5.3 aspectFill 594.5.4 widthFix 604.5.5 9种裁剪模式 604.6 完成静态文章列表 614.7 .js文件的代码结构与Page页面的生命周期 644.8 数据绑定 684.8.1 初始化数据绑定 694.8.2 在哪里可以查看数据绑定对象 704.8.3 绑定复杂对象 714.8.4 数据绑定更新 724.9 列表渲染wx:for 764.10 配置单个页面导航栏背景色 794.11 从欢迎页面跳转到文章页面 804.11.1 事件 804.11.2 redirectTo与navigateTo 824.11.3 小程序最多只能有5层页面 834.11.4 冒泡事件与非冒泡事件 84第5章 模块、模板与缓存 855.1 将文章数据从业务中分离 865.2 小程序的模块 875.3 小程序的模板化 895.4 消除template模板对外部变量名的依赖 905.5 include与import引用模板的区别 925.6 CSS的模块化 935.7 令人遗憾的模板化而非组件化 945.8 使用缓存在本地模拟服务器数据库 955.8.1 应用程序的生命周期 955.8.2 使用Storage缓存初始化本地数据库 965.8.3 缓存的强制清理及注意事项 995.9 编写缓存数据库操作类 995.10 使用缓存数据库操作类 1015.11 使用ES6改写缓存操作类 1025.12 完善文章数据 1035.13 完整的data.js数据 104第6章 文章详情页面 1106.1 跳转到文章详情页面 1116.2 不要在template上注册事件 1126.3 页面间传递参数的3种方式 1136.3.1 组件的自定义属性 1136.3.2 通过dataset获取组件自定义属性 1146.3.3 获取页面参数值 1156.4 编译时设置初始化页面及参数 1156.5 读取文章详情数据 1166.6 文章id号的数据流向图 1176.7 编写文章详情页面 1186.8 垂直居中问题的经典解决方法 1216.9 动态设置导航栏标题 1226.9.1 使用配置文件配置导航栏标题 1226.9.2 使用wx.setNavigationBarTitleOBJECT设置导航条 123第7章 收藏、评论、点赞与计数功能 1247.1 收藏、评论、点赞、计数功能准备工作 1257.2 文章收藏功能 1277.2.1 条件渲染:wx:if与wx:else 1277.2.2 实现收藏点击功能 1287.2.3 交互反馈wx:showToast 1307.3 文章点赞功能 1317.4 本地缓存的重要性及应用举例 1337.5 支持文字、图片、拍照、语音上传的文章评论 1347.6 文章评论页面的实现步骤与思路 1347.7 获取并绑定文章评论数据 1357.8 显示文章评论数据 1407.9 实现图片预览 1457.10 实现提交评论的界面 1467.11 wx:if与hidden控制元素显示和隐藏 1527.12 实现文字评论框和语音评论框的切换 1527.13 input组件 1537.14 bindinput事件 1547.15 屏蔽评论关键字 1557.16 实现自定义发送按钮 1577.17 同时支持模拟器回车、真机点击完成发送评论 1617.18 图片与拍照评论的界面实现 1617.19 实现从相册选择照片与拍照 1647.20 icon图片 1667.21 删除已选择的图片 1677.22 在小程序中使用CSS 3动画 1687.23 实现图片评论的发送 1707.24 实现语音消息的发送 1717.25 实现语音消息的暂停与播放 1747.26 用户授权 1767.27 解决真机运行时评论页面滑动卡顿的问题 1777.28 文章阅读计数功能 177第8章 背景音乐播放 1808.1 显示音乐播放图标 1818.2 切换音乐播放图标 1828.3 背景音乐播放的特点 1828.4 实现单页面背景音乐播放 1838.5 监听音乐播放 1858.6 全局变量与全局音乐播放 1868.7 音乐总控开关 1928.8 显示音乐的封面图片 194第9章 丰富文章页面 1959.1 将页面分享给朋友和微信群 1969.2 从swiper组件跳转到文章详情页面 1979.3 使用小程序动画实现点赞特效 199第10章 电影 20410.1 小程序的tab选项卡 20510.2 电影页面介绍 20810.3 编写豆瓣星星评分组件:stars-tpl模板 21010.4 编写movie-tpl模板 21210.5 编写movie-list-tpl模板 21310.6 电影首页的骨架与样式 21510.7 豆瓣电影API分析 21610.8 电影首页的js编写 21710.9 wx.request发送httphttps请求 21910.10 设置wx.request的超时时间 22110.11 处理返回的电影数据 22110.12 绑定处理后的电影数据 22410.13 http和https在小程序中的使用说明 22610.14 跳转到更多电影页面 22710.15 编写movie-grid-tpl模板 22910.16 编写更多电影页面 23110.17 实现页面下拉刷新的三部曲 23410.18 在模拟器中可执行下拉刷新但在真机中无法执行下拉刷新的常见错误 23710.19 json中的backgroundColor配置的是哪里的颜色 23810.20 实现上滑加载更多数据 23910.21 动态设置导航栏loading图标 24110.22 电影搜索 24410.23 电影详情页面 24910.24 电影详情页面的骨架和样式 25110.25 编写电影详情页面的业务逻辑代码 25810.26 预览电影海报 26110.27 设置电影页面的导航栏标题 262第11章 设置 26411.1 设置页面 26511.2 获取用户基本信息 27211.3 数据缓存的异步操作 27511.4 获取系统信息 27711.5 获取网络状态 28111.6 获取当前位置信息与当前速度信息 28211.7 使用微信内置地图查看位置信息 28311.8 监听罗盘数据制作一个简易指南针 28411.9 在小程序中实现摇一摇 28611.10 扫码 28911.11 获取小程序页面二维码 29211.12 下载并预览pdf、word等多种类型文档 293第12章 开放接口 30012.1 准备工作 30112.2 用户登录 30112.3 用户信息校验 30712.4 解析用户加密数据获取openId及UnionId 31312.5 模板消息 31612.6 form表单及picker组件 32112.7 发送模板消息 32312.8 微信支付 32812.9 真实的微信小程序登录状态维护 336第13章 杂项 33813.1 wx:key 33913.2 scroll-view组件:在js中控制滚动条 34313.3 深入理解小程序的单向数据绑定机制 34813.4 深入理解scroll-view组件的bindscrolltolower、lower-threshold属性 34913.5 微信小程序发布流程 350
內容試閱
前言
本书的特点与特色兴许是我向来不喜欢很多编程书籍开篇就大篇幅罗列知识点的做法,从业八年以来,每每翻阅技术类书籍,看到连篇累牍的概念理论就头疼不已。接到清华大学出版社的邀约后,我长久思忖如何组织小程序开发这本书的编写思路,写出一本我自己也喜欢看的书籍。如果能让读者身临其境地开发一个几近真实的项目,在不知不觉中就可以学会小程序开发,那该多好。庆幸的是,小程序不是一门语言,它不需要像Java、Python、JavaScript等基础语言教学一样罗列一个个基础语法,它最好的学习方式就是本书的实践式学习。因此,本书将用一个较为完整的案例项目把小程序的各个知识点串接起来,一边做项目,一边学习小程序的开发。做完一个项目就可以入门小程序是本书的目的。我喜欢这种实践式学习所带来的代入感(如果你玩过各类角色扮演游戏,你就明白什么是代入感),跟着本书一步步coding,你不仅收获了知识,更是直接完成了一个像模像样的小程序,这种成就感是学习编程最大的动力。即使你是一个基础较好的开发者,只看官方的文档也能学会小程序的开发,我依然建议你认真阅读本书,因为本书将为你节约大量试错时间。本书在很多时候并没有直接给出一个问题的最优解决方案,而是首先给出一个看似很蠢的思路来解决问题。因为这是我们最直接的思维,也是最简单的解决方案。通过分析这个解决方案有什么缺点,最后给出一个更加优秀的解决问题的建议。我想,这符合我们编程里重构的概念。相比于直接给出最优解(事实上编程里很难有最优解,只是相对优秀),渐进式的解决问题更加能让读者体会到优秀解决方案的优势,避免对知识的生搬硬套。我一直认为,本书的编写思路也是程序员自学的思路,由点及面、由具体到抽象。在工作中遇到了问题,想办法解决问题,查阅资料学习这个问题的相关知识点,最后把这些知识点总结、归纳,形成自己的知识体系,这是一个通用的学习套路。编程的各类语言、框架太多了,技术发展的速度也快得惊人,即使类似功能的框架也多达十几个,我们很难像学习经典数学、基础物理学、现代经济学这样先学习理论再付诸实践。Coder有时就要有这种直面未知的勇气:先解决、再学习,管它三七二十一。本书虽然定位于入门,但其中不乏一些小程序的进阶知识,这主要体现在微信开放接口上。学习微信开放接口不仅需要你拥有前端的知识,更要有一定的服务器编程经验,否则你很难理解为什么微信要这么设计开放接口的调用流程?为什么需要这么复杂的签名与令牌体系?退一步讲,不理解也没关系,遇到类似问题和功能时,你知道怎么去解决即可。在编程里,我们不理解的东西太多了,谁能保证我们将做过的项目、产品每一个细节都理解得清清楚楚、明明白白?有时候记住怎么去做,比为什么这么做更加重要。理解清楚只是一个相对的概念,没人能够准确定义理解到什么程度才能称为理解清楚,也没有人能够说明深入到什么程度才算是深入学习。所以,有选择地学习原理,把更多精力放在解决问题上,我认为是一个正确的 选择。在本书中,当遇到你不熟悉的知识体系时,没有关系,先写上去,实现这个功能。当以后有了更丰富的经验再回过头来看看这些知识点即可。本书的详细程度完全可以让你即使不懂某个知识点,也可以完成整个Orange Can项目。小程序开发需要的前置技能如果不考虑服务器,小程序开发只需要开发者具有JavaScript和CSS相关知识即可。有很多文章说,开发者开发小程序还需要掌握Vue、AngularJS,这有些强人所难了。小程序确实有很多和Vue、AngularJS相似的地方,这主要体现在数据绑定上。但Vue和AngularJS远比微信小程序要复杂得多,为了开发一个简单的小程序,学习远比这个简单的东西复杂多倍的框架实在没有必要。从先来后到的角度看,Vue、AngularJS等经典MVVM框架确实先于小程序出现,且小程序借鉴了许多这些MVVM框架中的经典思想。但对于既没有开发过小程序,也没有任何AngularJS、Vue经验的开发者,这个先来后到的理念对你没有任何意义。反正都不会,自然是优先学习简单的,再进阶复杂的框架。如果你是一个iOS和Android转型过来的开发者,完全没有必要理会Vue和AngularJS,小程序开发中的很多思想相信你在自己的iOS和Android领域已有体会。如果你只是为了开发小程序前端部分,更没有必要学习NodeJS。前端是前端,服务器是服务器,我们能把一端做到极致就已经非常了不起了。如果你想一个人开发一个完整的小程序,那服务器语言也没有规定必须是NodeJS。选择一个你喜欢的服务器语言,PHP、NodeJS、Python、Java、C#、Ruby都是可以的。小程序开发需要掌握什么,在我看来是一个伪命题。小程序应该成为零基础入门开发者学习前端的首选开发平台(以学习与实践为目的),因为它足够简单,又同现在的主流MVVM框架非常类似,学习曲线很平滑。它应该成为入门其他更复杂、功能更强大的框架的垫脚石。对于一个传统的Web开发者,在编写小程序时只需要注意以下两点:(1)小程序中没有DOM,请放弃首先获取DOM,再操作DOM的思维。(2)替代DOM操作的方法是数据绑定。控制组件显示隐藏、切换CSS样式、控制滚动条,这些很容易用DOM思维思考常见功能在小程序中都是通过数据绑定实现的。如果你想将代码写得更加优美和简洁,那么补充一些ES6和LESS的知识就更好了。小程序开发难吗说小程序是所有开发框架平台里最简单的可能略微有些夸张,但说小程序是目前所有主流移动开发技术中最简单的毫不夸张。这种简单来自于两个方面:第一,编写小程序只需要掌握JavaScript和CSS两门语言。前端最难的是有太多Web前端框架、类库需要学习。但是,小程序里的JavaScript是裸奔的,我们在Web开发中常用的各类框架类库在小程序中统统无法使用。jQuery、Zepto、AngularJS、HightCharts、ECharts,这些Web前端学习中的一座座大山,小程序已经全部干掉了小程序运行在一个JSCore中,它本身不支持Web中的window及DOM对象。有些JavaScript库还是可以使用的,但真的没有必要了,小程序已经提供了简单的架构和内置的特性避免使用这些框架。例如,小程序默认使用babel将开发者代码所使用的ES6语法转换成三端都能很好支持的ES5代码,帮助开发者解决环境不同所带来的开发问题。你所需要掌握的是JavaScript和CSS,原则上讲,不再需要学习各类框架和库了。这无疑减轻了很多初学者的负担。第二,小程序本身就是为轻量级应用所设计的平台,无论是开发工具、设计规范、API设计,无不散发出一种大道至简的气息。你只需要从官方下载一个开发工具即可立即开始开发小程序,没有复杂的安装环境,没有复杂的目录结构,也没有复杂的打包、部署流程。小程序很多近似死板的规范无疑让开发者减少了很多工作量(不给你选择,自然简单)。关于对于开发者的约束,这个仁者见仁、智者见智,有人喜欢它的简单,也有人憎恨它的不自由。我甚至认为小程序完全可以成为那些完全没有编程经验又想进入前端开发领域的人最好的入门平台。完全可以从小程序入手,通过小程序平滑的学习曲线,在熟悉编程逻辑后,再反向学习Web前端庞大的知识体系,从而进入这个行业。处于早期阶段的小程序小程序从2016年9月22日公布后,在短短的3个月中连续更新了8个版本。更新速度非常快。但在2017年1月9日正式开放后,版本迭代速度逐步放慢下来。预计正式上线后,小程序的接口会逐步趋于稳定。小程序目前还处于极为早期的发展阶段,但其主要的框架、API都已成型,并不影响我们学习。本书无法保证书籍出版前所使用的API不会在出版后有所调整,这个是我不能控制的。本书中所描述的知识与小程序的行为都只在130400版本中测试和验证,无法保证以后小程序会不会更改这些行为。事实上,从最开始的内测版本到现在的130400版本,小程序不仅调整API,甚至经常会更改一些MINA框架的运行机制和行为,这将导致原本可以正常运行的代码突然变得有问题,需要重新调整。除此之外,本书的Orange Can项目是一个接近于真实项目的小程序,还是有一定复杂度的,我无法保证不出现任何bug。事实上,也没有任何人能保证自己的项目不出现任何bug,我们能做的就是严格测试、尽量减少bug的数量,并在发现bug后第一时间做出修正。虽然无法保证书籍中的代码和API完全不会变更,但我会通过微信公众号、知乎专栏等方式同读者交流,保持对书籍的网络更新。同时,也会持续维护Orange Can示例项目的源代码,保证项目能够正确、稳定的运行。截止本书出版之前,小程序最新版本为0.14.140900。从130400到140900的版本更迭中,没有再出现因版本更新而造成的问题,项目代码运行良好。可以看到,小程序从1月9号正式开放后,API日趋成熟,基本能够保持稳定。本书与官方文档的区别本书并不想成为官方开发文档的搬运工,除了一些非常必要的地方会引用官方文档的说明,本书几乎不会大段复制官方文档。本书更多使用官方API文档完成一个项目,对官方文档的主要内容做详细的补充说明,并附带对文档内容的经验性总结。官方的API文档通常定位于工具类的速查手册而非教程。当然对于开发功底深厚的开发者,只靠开发文档也可以完成一个小程序项目,但通常需要耗费较长时间。开发文档只会告诉开发者有哪些能力,但这些能力如何使用还需要开发者自己探索。本书可以告诉开发者如何使用官方API完成我们自己的业务逻辑,并在这个过程中逐步熟悉官方API,从而达到入门小程序并自己开发一个小程序的目的。除此之外,目前来说,小程序的开发还是有不少坑的。本书尝试为开发者提前把这些坑踩一踩,填实了,以帮助开发者集中精力开发业务,减少浪费在小程序bug上的时间。一本书是永远不可能替代官方API文档的。即使想成为官方文档的替代品也是不可能的,因为最新最全的资料永远都由官方文档率先公布,书籍总会有一定的滞后性,这也是我为什么没有在本书中大量引用官方文档的原因。本书的价值在于让开发者快速入门小程序,并讲解小程序的各个特性,降低开发者的学习成本,快速入门开发自己的应用。官方文档总体来说还是非常全面优秀的,但也有很多讲得不清楚的地方,对于官方文档中错误、遗漏或者没有讲清楚的地方,本书会做详细的补充说明。建议开发者将本书与官方文档结合起来阅读,学习阶段以本书为主,文档为补充;而在开发阶段以文档为主,本书的补充说明为辅。此外,官方为所有开发者准备了一个非常详尽的demo,可在微信中搜索小程序示例这几个关键字。官方示例demo源代码下载地址:https:mp.weixin.qq.comdebugwxadocdevdemo.html下载项目资源文件、源代码一本书难以详尽讲解小程序的所有知识点,也无法回答开发中的所有问题,更加难以应对不断更新的小程序版本。这是一个互联网的时代,我们将尝试用书籍 网络的方式来维护本书,并对小程序最新的变更做出代码上的改动,以保证我们的示例代码可以正常运行。读者朋友也可以通过我的微信公众号向我提供反馈,并收到书籍、源代码变更的更新消息。此外,我的知乎专栏也会经常发布一些关于编程和互联网方面的文章。所有项目源代码、资源文件等内容都将在微信公众号中提供下载地址。读者可以从我的微信公众号中获取项目效果图和最新版本源代码。代码包括Orange Can项目的小程序代码及部分功能的服务端PHP代码。● 微信公众号:小楼昨夜又秋风● 知乎专栏:小楼昨夜又秋风● 知乎ID:七月在夏天读者可以访问地址:http:pan.baidu.coms1cxQXie(注意区分数字和英文字母大小写)获得本书源代码。如果在下载过程中遇到问题,请发电子邮件至booksaga@126.com,邮件主题设置为微信小程序开发入门与实践配书资源。如何阅读本书如果你是拥有多年丰富开发经验的开发者,并且已经对小程序有一定了解,建议快速浏览章节目录,找到你感兴趣的主题,然后只看这一小节。如果你有一定的前端开发基础,但没有小程序的开发经验,建议从头开始做完Orange Can项目,深入理解书中的每一个开发技巧。建议先看每个页面的效果图,或者下载最新源代码,在熟悉功能后,自己尝试编写项目功能,再对比源代码的实现方式。也许你写的项目代码比本书中的还要优秀。如果你想用小程序来入门前端,那么请先熟悉JavaScript和CSS的基础知识,然后把Orange Can项目当作一个真实项目,一边做一边实践所学习的JavaScript和CSS知识。遇到不太明白的地方努力搞懂它,实在不懂也没关系,先写上去,等有一定经验后再回过头来看。但无论如何,一定要完成Orange Can项目的文章和电影这两个部分。如果你是一个纯粹的技术开发者,那么请直接从第2章开始阅读。总体的建议是,对于Orange Can项目的文章和电影部分,应该一步步跟着书籍逐步实现这两个核心功能;而对于设置页面,结合源代码看懂本书中的内容即可。当然,如果整本书你都能亲手敲打每一行代码,我相信你收获的绝对不仅仅是小程序开发的知识点。此外,对于Orange Can项目的CSS样式,建议开发者不要完全照搬本书的CSS样式,每个人编写CSS样式的思路千差万别,本书无法保证所有CSS样式都是有意义的,少部分CSS样式是为了防御性而编写的。重点是小程序相关的知识点和JavaScript代码。微信官方开发者社区微信官方开放了一个开发者社区,开发者可以在社区里向微信官方反馈bug及提出问题。开发者社区地址:https:developers.weixin.qq.comhome致谢向我多年的朋友蒋建明致谢,感谢他为本书提供了很多宝贵意见。感谢石墨文档联合创始人陈旭为本书作序。感谢清华大学出版社王金柱老师的支持,让我拖拖拉拉写了近三个月才完成本书。
雷磊2017年2月8日


我眼中的小程序这本书的编写历史很有意思。从2016年10月中旬开始构思本书的内容,到2017年3月定稿,历时5个月的时间。这中间小程序的大起大落颇值得我们认真回味一下。2016年9月,小程序内测后迅速引爆了整个互联网圈,含着金钥匙出生的小程序,甚至还没有展现其全貌就已被捧上了天。App完了、微信要成操作系统、厉害了我的大Web前端,各种不着调儿的声音甚嚣尘上。不过,作为一个技术开发者,我深刻明白,没有完美的技术,更不会有突然就消亡的产品,小程序不会一统江湖,App也不会销声匿迹,小程序一定是以一种和App互补的姿态出现在人们的视野,至少短期之内一定是这样。2016年9月到12月28日这段时间,所有人都看不透小程序,连入口、发现机制都不知道,如何能够精准地定位小程序?直到2016年12月28日微信公开课上,张小龙终于用一连串 没有告诉了所有媒体和开发者,你们都是错的。小程序并不是你们想的那样:我说它只是用完即走的服务,那它就一定是用完即走的服务,不会带有很强的媒体属性;我说没有应用市场,那官方就没有应用市场;我说扫一扫、搜一下就能打开小程序,那就没有第三种途径可以触及小程序。在当时,这些没有确实让很多开发者大吃一惊。官方没有应用市场,只支持有限能力的搜索(目前,微信已开放了小程序的模糊搜索),不能分享到朋友圈,不能被关注,没有主动推送消息的能力,这是官方在2016年末时向开发者所描绘的小程序肖像。很多产品经理、创业者在看完微信公开课后,都默默地在想,那我要小程序干什么?在2016年12月28日的微信公开课上,张小龙还公布了小程序正式开放上线的日期:2017年1月9日。10年前的1月9日,乔布斯公布了第一代iPhone,这个产品重新定义了智能手机;10年后的1月9日,微信发布了小程序,这个产品能重新定义应用程序吗?诸多限制并没有让开发者特别沮丧,无数创业者依然坚信小程序是一个巨大的红利,不试试怎么知道呢?2017年1月9日凌晨整点刚过,积压了一年多(早在2016年1月,张小龙就公布了微信应用号)热情的开发者迅速上线了自己的小程序,无数早已审核完毕的小程序如潮水般涌来。可创业者失望了,原来小程序并不如大家想得那般美好,信守承诺的微信不仅没有放开任何一个限制,反而屏蔽了长按二维码识别小程序的功能(目前已开放)。长按二维码是当时可以很方便地在线上推广小程序的途径,可这条路也被微信无情地斩断了。顿时互联网圈子不淡定了,许多人在前两个月对小程序的看法还是万紫千红总是春,但转眼间却发现小程序并不像想得那样美好。线上的推广渠道几乎没有、搜索必须输入完整的名字(目前已解除这个限制,支持模糊搜索)、不能和公众号同名、用户只能从历史中打开曾经使用过的小程序、不对个人开发者开放,这些都是小程序的真实模样。所谓人生若只如初见,何事秋风悲画扇大抵就是这样的心情。很多创业者、开发者不再认可小程序的模式,整个互联网对于小程序的评价来了一个180度的急转弯。创业者认为小程序不利于推广,开发者认为这就是一个Web网页,并没有什么新意,很多普通用户甚至根本不知道有小程序这个东西。完全摒弃线上入口,真的好吗?开放模糊搜索、允许公众号关联小程序,这明明在技术上并不难实现,为何要如此固执。也许是微信已经习惯了低调与克制,只是这次的克制却显得如此的生硬。当然,也许微信有自己的考虑与布局,只是我们局外人不得而知。2017年3月27日,画风突变,微信公布了小程序的若干新特性:对个人开发者开放注册;公众号自定义菜单与模板消息可以绑定小程序,用户点击后可直达小程序;移动App可分享小程序;不再需要扫描小程序特定的二维码,直接扫描商户原有普通二维码也可以直接打开小程序。小程序开始尝试借助微信现有资源来推动小程序的发展。很明显,小程序的入口逐渐丰富了起来。借助微信公众号那惊人的体量与访问量,被开发者一直诟病的没有传播途径这个问题,也得到了较好的解决。在没有放开这些能力之前,我曾经一度认为小程序和微信并没有什么联系,它完全是一个游离于微信体系之外的产品,和微信的关联感太弱了。但这次新能力的放出,让我感觉到了小程序真的变成了微信的小程序。现在的小程序已初步具备了线上线下同步的雏形。微信绕了一大圈儿,最终还是回归到了线上线下结合这个互联网运营的经典套路。此次推出新特性的意图也较为明显:线下开疆拓土,线上巩固固有优势和辅助线下发展。至于开发者到底是重线上还是重线下,或是二者结合,这就在于开发者的抉择了。反正线上线下都给了开发者,那就自己看着办吧。但以现在线上产品的完备程度来看,留给新产品的空间已经很小了。尝试着将目光投向线下也许是一个不错的选择,转变一下思维也许会有一片新天地。以前我们的思维是线下什么不方便,那就把线下移植到线上。比如交水电费不方便,那就线上交;火车飞机出行购票不方便,那就线上买。这些服务毫无疑问是互联网发展的必然衍生物。可还有很多活动是线上做不了的,或者说很多线下活动如果放在线上,就会变得索然无味。比如看电影,如果线上能代替线下,为什么还有那么多人购买电影票去看大荧幕?因为电影是一门光与影结合的艺术,需要环境和氛围的辅助才能体会光、影、音结合的美妙和震撼;再比如朋友聚会、同学聚会,大家在线上用微信视频一起聊个天行吗?这自然不行,因为感觉不到位。我们无法脱离线下,却又被线下的不方便所困扰。在我看来,线上线下结合是一个必然趋势,微信希望的也是从线下挖掘新的流量与场景。线上的服务虽然很方便,但场景有限,人不可能纯粹地活在线上环境里,我们依然有大量线下活动。目前,互联网所能提供的服务品质和服务种类其实已经达到了一个极限,在科技没有革命性进步的情况下,还想从线上有所突破是不太现实的。看似AI、物联网、VR很火热,但它们离真正的
普及还有很长一段路要走。当然,哪天人类的科技真能发展到像电影《星际穿越》中所描绘的智能、多维的层级,这就另当别论了。目前来看,线下的活动场景和机会还是挺多的,只不过还没有被充分挖掘。所以,不要太过于执着于线上,换一种思路,挖掘一下线下的场景,也许是创业的一个突破口。线下有太多小程序非常适合的场景,拥有巨大的想象空间。虽然现在有不少H5服务于线下场景(如很多餐饮业提供的排号及点餐服务),但无论是从体验还是产品闭环上,都远远不及小程序。这点希望开发者能够去思考一下,不要强行用固化的思维看待小程序。这和技术无关,只和场景有关。那么原生App、H5和小程序该如何抉择?至少从目前来看,如果只是一个纯粹的单一的线上小程序,相比于原生App还是有一定的劣势的,但在微信将小程序与公众号做了强绑定后,小程序的应用又变得非常的多元化,它们之间不再是非此即彼了;而在对比H5页面时,小程序的体验(使用体验与服务体验)还是要略有优势的,毕竟小程序是一个体系,但缺点是没有H5开放和自由,H5依然是最佳的粘合剂,很适合嵌入到各个种类的产品与应用中。无论创业者选择App还是小程序,或者二者齐头并进,都应当把做好产品放在第一位。不是说选择不重要,而是过分在意选择载体而忽略了本质,多少有些舍本逐末。回归产品本质,解决用户的问题也许才是每个开发者应该斟酌和思量的事情。对于小程序,更多时候我只是一个看客,它发展得好与不好对我而言没有太大影响。它发展得好,我这本书就有一定价值和意义,它发展得不好,未来这本书就如废纸一般,被读者丢弃在角落,蒙上一层厚厚的灰尘。我只是一个普通的开发者,这本书的内容也主要是讲解和技术本身相关的知识。它不是一本运营手册,仅仅是一本技术书籍,无论小程序未来发展如何,读者都可以从这本书里获取一些有用的知识。平台是多变的,但技术思维是相通的。抛开繁杂的因素,仅从开发体验上讲,我非常喜欢小程序的灵巧。下载源代码后,不用配环境,只需要一个开发工具就能跑起小程序,这在现在越来越复杂的开发平台中是不多见的。也许小程序以后专业用来做原型代替Axure也不是不可能。此外,小程序非常适合开发者去践行自己的想法,以前移动端的开发成本太高,有很多想法因此都无法实现。但现在有了小程序就不同了,完全可以快速编写一个MVP产品,然后迅速投向市场去试错,再逐步迭代、完善,最终考虑是否要推出自己的原生App。也许未来真的像张小龙所言,处处都是二维码;也可能未来的小程序就像历史上无数被技术更迭的浪潮所淹没的语言和平台一样,遁于无形。可谁又能预测未来呢?互联网每天都有新贵诞生,也有王者陨落,成与败都在弹指之间,这在互联网的世界里是再平常不过的事情。对于一个寄生于超级App的平台而言更是如此,一切都是未知数。但无论如何,小程序这种即用即走的理念确实是现今主流App所缺失的。世界和科技总在不断变迁和进步,小程序这种形态的应用能否打破现在移动端的格局,我们目前还不得而知,但我相信这种理念确实值得认真思考一下,至于移动端的未来,还是交给时间吧。最后,我花了很多时间思考这本书应该起个什么名字。从入门到精通?从来没有一本书能让你真的精通一项技术,精通一项技术是需要经年累月的持续学习的;零基础学习小程序?这也不太实际,本书不是讲解JavaScript等基础语言,很难做到零基础学习;从入门到实战?好像挺符合本书的定位。但我思忖,实战这个词汇太噱头,哪有在书里就能实战的,书里谈的代码从来都无法模拟真实的运行环境,何能称为实战?我诚惶诚恐,不敢用实战二字,思来想去,最后还是用实践落笔书名。以实例践行小程序的应用,同读者一起探讨小程序的开发。
雷磊2017年2月初稿3月修订

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.