1.邂逅小程序开发
什么是小程序?
微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验
小程序是微信生态的一部分, 它提供了一种更加方便和高效的用户交互方式.
小程序的出现到底带来了什么呢?
-
用户使用的便捷性
普通的APP我们需要的使用过程:了解APP - 下载 - 打开 - 注册 - 使用
小程序版本的APP的使用过程:了解APP - 打开(扫码/搜索) - 使用 -
远好于公众号和H5页面的体验
比如寄顺丰快递,使用公众号和小程序的体验差异非常大; -
释放手机内存空间
对于手机空间不大的人来说, 安装很多App会带来灾难, 经常面临空间不足; 小程序不需要安装, 而且有规定的大小(目前不能超过8M,包括在使用分包的情况下); -
让手机桌面更加简洁
不需要下载App, 就不需要花时间来管理自己的App了;
小程序开发的必要性
由于小程序各种好处,使用小程序的用户会越来越多
那么从公司角度,有自己的小程序就变得非常有必要
一方面,为了给用户带来更加便捷的使用体验,需要开发对应一款小程序:
开发出来的小程序,用户体验优于H5的体验,并且底层可以调用原生的各种接口;
而且可以做到:一端开发,多端运行(iOS端、Android端);
另一方面,必须抢占小程序的市场:
你不开发,你竞争对手也会开发,当大量用户为了使用方便涌入你的竞争对手时,你就来不及了;
所以现在公司经常出现,让前端或客户端程序员,甚至是服务端程序员去帮公司做一个小程序。
小程序的诞生
我们知道,任何新的技术或者模式的产生,都是为了解决行业的痛点:小程序就是在这样的背景下诞生的
小程序正是大家期盼已久的产物,它有什么特点呢:
1.类似于Web 开发模式,入门的门槛低:基本上是类似于html+css+js;
2.可直接云端更新:微信审核,无需经过App Store等平台;
3.提升用户体验:通过提供基础能力、原生组件结合等方式,提升用户体验;
4.平台管控能力:小程序提供云端更新,通过代码上传、审核等方式,增强对开发者的管控能力;
5.双线程模型:逻辑层和渲染层分开加载,提供了管控型和安全性(沙盒环境运行JS代码,不允许执行任何和浏览器相关的接口,比如跳转页面、操作DOM等);
目前小程序已经在用户和开发者中普及起来,并且依附于微信平台大量的人群基数,正在快速的发展
小程序预备知识
小程序的开发主要分成三部分:
页面布局:WXML,类似HTML
页面样式:WXSS,几乎就是CSS(某些不支持,某些进行了增强)
页面脚本:JavaScript+WXS,(JS,以及WeixinScript后续学习)
也就是学习微信小程序还是需要大家具备基本的前端知识
开发前准备工作
申请AppID和下载开发工具不再演示
开发工具介绍
应用程序的结构
小程序结构划分:最上层App -> 多个Page -> 多个组件
应用目录的结构
从零搭建项目
删除项目中原有的文件(保留project.config.js – sitemap.json)
找不到app.json, 所以创建一个app.json文件
在app.json最外层添加对象:
缺少一个字段pages
保存上面的操作, 就会看到如下页面:
修改代码,显示 你好,月光
修改样式:
补齐app.js和app.wxss:
小程序初体验
2.小程序构架和配置
配置小程序
小程序的很多开发需求被规定在了配置文件中。
为什么这样做呢?
1.这样做可以更有利于我们的开发效率;
2.并且可以保证开发出来的小程序的某些风格是比较一致的;
比如导航栏 – 顶部TabBar,以及页面路由等等。
常见的配置文件有哪些呢?
project.config.json:项目配置文件, 比如项目名称、appid等;
https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html
sitemap.json:小程序搜索相关的;
https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html
app.json:全局配置;
page.json:页面配置;
全局配置
全局配置比较多, 我们这里将几个比较重要的. 完整的查看官方文档.
https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html
pages: 页面路径列表
用于指定小程序由哪些页面组成,每一项都对应一个页面的 路径(含文件名) 信息。
小程序中所有的页面都是必须在pages中进行注册的。
window: 全局的默认窗口展示
用户指定窗口如何展示, 其中还包含了很多其他的属性
tabBar: 顶部tab栏的展示
案例实现
页面配置
每一个小程序页面也可以使用 .json 文件来对本页面的窗口表现进行配置。
页面中配置项在当前页面会覆盖 app.json 的 window 中相同的配置项。
小程序的双线程模型
谁是小程序的宿主环境呢?微信客户端
宿主环境为了执行小程序的各种文件:wxml文件、wxss文件、js文件, 提供了小程序的双线程模型
双线程模型:
WXML模块和WXSS样式运行于 渲染层,渲染层使用WebView线程渲染(一个程序有多个页面,会使用多个WebView的线程)。
JS脚本(app.js/home.js等)运行于 逻辑层,逻辑层使用JsCore运行JS脚本。
这两个线程都会经由微信客户端(Native)进行中转交互。
小程序的启动流程
注册小程序 – 参数解析
每个小程序都需要在 app.js 中调用 App 方法注册小程序示例
在注册时, 可以绑定对应的生命周期函数, 在生命周期函数中, 执行对应的代码.