一、什么是小程序?
首先我们要了解到,小程序并不是网页,也不是个app,它是微信小程序、支付宝小程序、QQ小程序、抖音小程序、今日头条小程序、百度小程序等等的统称。
主要指微信小程序
1.1 小程序的概念
小程序是一种不需要下载、安装即可使用的应用,它实现了应用触手可及的梦想,用户扫一扫或者搜一下就能打开应用,也实现了用完即走的理念,用户不用安装太多应用,应用随处可用,但又无须安装卸载
--- 微信之父、FoxMail之父 张小龙、微信小程序之父?
根据张小龙的总结,我们不难总结出:
- 特点:无需下载(并非不下载,而是小程序体积非常小,用户感知不到下载的过程 打开任意一个小程序(2MB))、无需卸载
- 理念:用完即走(让用户在短时间内完成某件操作,用户离开小程序即可,并不需要关注小程序本身)
- 入口:扫一扫、搜一下、群聊……
1.2 小程序的开发与普通网页开发以及APP开发的区别
- 运行环境的不同
- 小程序是运行在微信环境中
- 网页是运行在浏览器环境中
- APP运行在手机操作系统中中
- API 不同
- 因为小程序运行的环境是微信,因此无法调用DOM和BOM的API,
- 但小程序可以调用微信环境提供的各种API,如:
- 微信扫码
- 微信支付
- 地理位置
APP的API是手机操作系统提供的
- 开发模式的不同
- 网页的开发模式:
代码编辑器+浏览器 - 小程序拥有自己的一套标准开发模式
申请小程序开发账号安装小程序开发者工具创建和配置并开发小程序项目在开发者工具中对代码进行上线
App开发模式需要调用IOS和Android的组件库
- 网页的开发模式:
- 标签不同
- 网页标签:div、span、img等
- 小程序标签:view、text、image等
二、小程序开发的流程
1. 可用微信扫描下面的二维码体验小程序的开发
2. 微信小程序开发流程概述
参考网址:微信公众平台
- 注册:在微信公众平台注册小程序,完成注册后可以同步进行信息完善和开发
- 在实际开发中,注册通常由运营、产品经理、项目经理进行注册
- 并不是前端程序员来进行注册
- 小程序信息完善:填写小程序基本信息,包括名称、头像、介绍及服务范围等
- 在实际开发中,完善小程序的基本信息,通常是由运营、项目经理、产品经理进行完善
- 前端程序员不要更改这些的基本信息
- 开发小程序:完成小程序开发者绑定、开发信息配置后,开发者可下载开发者工具、参考开发文档进行小程序的开发和调试
- 前端程序员主要战场
- 在实际开发中,开发一个小程序,首先需要将自己的微信号给相关的负责人绑定到注册的小程序中,才能够进行开发
- 下载开发者工具
- 参考开发文档进行小程序的开发
- 提交审核和发布:完成小程序开发后,提交代码至微信团队审核,审核通过后即可发布(公测期间不能发布)
- 在实际开发中,小程序的发布和上线,可能是前端程序员或者相关的负责人进行发布和上线
- 开发好项目以后,需要确认是否是由前端进行上线
三、注册小程序开发账号的流程
- 需要在微信公众平台注册小程序账号
- 微信公众平台:微信公众号平台
- 微信公众号实际上分为 4 类:订阅号(就是咱们平台聊天时候说的公众号)、服务号、小程序、企业微信
具体步骤:
- 打开微信公众平台,点击右上方“立即注册”按钮;
- 这时候会弹出让你选择注册类型的页面,包括:订阅号、服务号、小程序、企业微信。由于我们要注册小程序,这个时候点击小程序框;
-
这时候出现了注册表单页面,流程是:账号信息 -> 邮箱激活 -> 信息登记,我们需要认真的按照表单提示信息填写准确的信息;
- 邮箱不能被个人微信绑定
- 邮箱激活
-
选择主体类型
-
主体登记信息
- 邮箱不能被个人微信绑定
-
此时,基本我们就注册完毕了
四、获取小程序的AppID
相当于小程序在微信中的“身份证”,有了 AppID ,微信客户端才能确定小程序“身份”,并使用微信提供的高级接口
- 用来创建小程序项目
- 进行小程序的预览
- 调用一些高级的接口,例如:支付、登录
五、微信开发者工具
1.1 微信开发者工具的安装
-
了解微信开发者工具
微信开发者工具是腾讯官方推荐使用的小程序开发工具,它提供的主要功能如下:
- 快速创建小程序项目
- 代码的查看和编辑
- 对小程序功能进行调试
- 小程序的预览和发布
-
下载并安装微信开发者工具
- 推荐下载和安装最新的稳定版
Stable Build的微信开发者工具 - 微信开发者工具下载地址
- 安装方式: 下一步 --> 下一步
- 推荐下载和安装最新的稳定版
1.2 登陆开发者工具
1.3 设置开发工具的外观和代理
-
为什么要代理设置?
- 因为部分同学可能电脑安装了网络加速器或者翻墙工具,导致网络不稳定
- 为了防止加速器造成网络的不稳定,所以推荐代理设置为不使用任何代理
1.4 演示新建小程序的流程
点击:小程序 ->
+-> 进入创建小程序,填写项目信息页面
1.5 预览小程序
-
利用开发者工具直接编译查看
-
点击开发者工具中的预览,用手机微信扫描弹出的二维码,在手机中进行预览
六、小程序项目的构成
1.1 小程序项目目录的构成
-
pages用来存放所有小程序的页面 -
utils用来存放工具性质的模块(例如:格式化时间的自定义模块) -
app.js小程序项目的入口文件 -
app.json小程序项目的全局配置文件 -
app.wxss小程序项目的全局样式文件 -
project.config.json项目的配置文件 -
sitemap.json用来配置小程序及其页面是够允许被微信索引 -- SEO -- 搜索引擎优化
注意:json 文件在小程序中是配置文件
- 不能写注释
- 键和值都必须是双引号
- 不能出现多余的逗号
1.2 小程序页面的组成部分
小程序官方建议把所有的小程序页面,都存放在 pages 目录中,每个页面以单独的文件夹存在
-
每个页面由四个文件组成
.js文件 -- 页面的脚本文件,存放页面的数据、事件处理函数、生命周期等.json文件 -- 当前页面的配置文件,配置页面的外观、表现等.wxml文件 -- 页面的模板结构文件.wxss文件 -- 当前页面的样式表文件
1.3 认识小程序中的 4 种配置文件
JSON是一种数据格式,在实际开发中,JSON总是以配置文件的形式出现。小程序项目也不例外,通过不同的.json配置文件,可以对小程序项目进行不同级别的配置。
-
小程序项目中有 4 中
json文件,分别是:- 项目根目录中的
app.json配置文件 ★★★★★ - 项目根目录中的
project.config.json配置文件 - 项目根目录中的
sitemap.json配置文件 - 每个页面文件夹中的
.json配置文件 ★★★★★
- 项目根目录中的
1.3.1 app.json介绍
app.json是当前小程序的全局配置,包括了小程序的所有页面路径、窗口外观、界面表现、底部 tab等
-
Demo项目里面的app.json配置内容如下: -
全局配置文件就是指配置好以后,能够影响到每一个页面
简单了解下这 4 个配置项的作用:
-
pages:用来记录当前小程序所有页面的路径 -
window:全局定义小程序所有页面的背景色、文件颜色等 -
style:全局定义小程序组件所使用的样式版本- 微信小程序是运行到微信内部的
- 样式风格和微信是一致的
- 微信主要样式风格会发生改变,小程序也会随之发生改变
- 这时候就产生了样式版本的概念
-
sitemapLocation:用来指明 sitemap.json 的位置
1.3.2 project.config.json介绍
project.config.json是项目配置文件,用来记录我们对小程序开发工具所做的个性化配置,例如:
setting中保存了编译相关的配置projectname中保存的是项目名称appid中保存的是小程序的账号 ID
1.3.3 sitemap.json介绍
在实际开发中,这个文件,默认就可以
如果需要进行配置,需要按照运营的要求,进行文件的配置
微信现已开放小程序内搜索,效果类似于 PC 网页的 SEO (搜索引擎优化),sitemap.json 用来配置小程序页面是否允许微信搜索。
当开发者允许微信搜索时,微信会通过爬虫的形式,为小程序的页面内容建立索引。当用户的搜索关键字和页面的索引匹配成功的时候,小程序的页面将可能展示在搜索结果中。
注意: sitemap 的索引提示是默认开启的,如需要关闭 sitemap 的索引提示,可在小程序项目配置文件 project.config.json 的 setting 中配置字段 checkSiteMap 为 false
1.3.4 页面的 .json 配置文件
小程序中的每一个页面,可以使用
.json文件来对本页面的窗口外观进行配置,页面中的配置项会覆盖app.json中的window中的配置项
1.3.5 新建小程序页面
-
在
pages文件中右键新建文件夹 -- home,在home文件夹右键新建 home -- 输入 hoome- 官方推荐文件夹名称和页面的名称一致,方便后期的维护
- 新建页面组件的时候,
不需要输入后缀名
-
在
app.json-->pages中新增页面的存放路径,小程序开发者工具即可帮我们自动创建对应的页面文件 -
对 pages 目录下页面的删除或者新增都需要在 app.json 文件的 pages 数组中进行新增或删除
1.3.6 设置首页的两个方式
- 调整
app.json-->pages数组中页面路径的前后顺序,即可修改项目的首页,小程序会把排在第一位的页面,当作项目首页进行渲染
2. 在
app.json 中 pages 同级,配置一个新的节点 entryPagePath 节点,传入需要设置为首页的路径即可
- 最终小程序项目的首页,以 entryPagePath 节点设置的为准
1.3.7 WXML 的概念以及和 HTML 之间的区别
- 什么是
WXML
WXML(WeiXin Markup Language)是框架设计的一套标签语言(组件),用来构建小程序页面的结构- 类似于网页开发中的
HTML
WXML和HTML的区别- 标签名称不同
HTML---div、p、span、imgWXML---view、text、image、navigator
- 属性节点不同
<a href="#">超链接</a><navigator url="/pages/home/home"></navigator>
- 提供了类似于 Vue 中的模板语法
- 数据绑定 -- 插值表达式
- 列表渲染 -- wx:for -- v-for
- 条件渲染 -- wx:if -- v-if
- 标签名称不同
1.3.8 WXSS 的概念以及和 CSS 之间的区别
- 什么是
WXSSWXSS(WeiXin Style Sheets)是一套样式语言,用于描述WXML的组件样式- 类似于网页开发中的
CSS
WXSS和CSS之间的区别- 新增了 rpx 自适应尺寸单位
CSS中需要手动进行像素单位换算,例如remWXSS在底层支持新的尺寸单位rpx,在不同大小的屏幕上小程序会自动进行换算
- 提供了全局的样式和局部样式
- 项目根目录中的
app.wxss会作用于所有小程序页面 - 局部页面的
.wxss样式仅对当前页面生效
- 项目根目录中的
WXSS仅支持部分CSS选择器- 重点使用 class 选择器
- .class 和 #id
- element
- 并集选择器和后代选择器
- ::after 和 ::before 等伪类选择器
- 新增了 rpx 自适应尺寸单位
1.3.9 小程序中 JS 文件的三大分类
一个项目仅仅提供页面的展示是不够的,在小程序中,我们通过 .js 文件来处理用户的操作,例如:响应用户的点击、获取用户的位置等等
小程序中的 JS 文件分类三大类,分别是:
- app.js
- 是
整个小程序项目的入口文件,通过调用App() 函数来启动整个小程序
- 是
- 页面的 .js 文件
- 是
页面的入口文件,通过调用Page() 函数来创建小程序页面,并运行小程序页面
- 是
- 普通的 .js 文件
- 是
普通的功能模块文件,用来封装公共的函数或属性供页面使用
- 是
1.4 小程序运行机制
- 小程序启动的过程
- 把小程序的代码包下载到本地
- 解析
app.json全局配置文件 - 执行
app.js小程序入口文件,调用 App() 创建小程序实例 - 渲染小程序首页
- 小程序启动完成
- 页面渲染的过程
- 加载解析页面的
.json配置文件 - 加载页面的
.wxml模板和.wxss样式 - 执行页面的
.js文件,调用 Page() 创建页面实例 - 页面渲染完成
- 加载解析页面的
- 小程序从启动到关闭整个过程
- 小程序先启动
- 渲染小程序的页面
- 小程序页面关闭
- 小程序关闭