文章目录
一、小程序开发(一)项目基础知识
1. 小程序与普通网页开发的区别
-
运行环境的不同
- 网页运行在浏览器环境中
- 小程序运行在微信环境中
-
API不同
- 由于运行环境的不同,所以小程序中,无法调用DOM和BOM的API。
-
小程序中可以调用微信环境提供的各种API,例如
- 地理定位
- 扫码
- 支付
-
开发模式不同
- 网页的开发模式:浏览器+代码编辑器
-
小程序有自己的一套标准开发模式:
- 申请小程序开发账号
- 安装小程序开发者工具
- 创建和配置小程序项目
2. 小程序开发准备工作
-
注册小程序开发账号
- https://mp.weixin.qq.com/ 选择小程序进行注册
- 开发管理-开发设置 路径下获取 AppID(小程序ID)
- 安装开发者工具
-
创建一个简单的小程序
- 新建项目中选择不使用云服务
- 选择JS模版
- 模拟器查看项目效果-点击编译
- 在移动端预览项目效果-点击预览
2.1 开发者工具使用技巧
- 快速打开开发者文档 左上【帮助】【开发者文档】中直接打开
- 左上【工具】常用【构建npm】
- 右侧 【详情】查看【基本信息】、【本地设置】和【项目配置】
- 模拟器【机型】建议长选iPhone6/7/8,显示比例改为85%
- 底部【页面路径】可切换【页面参数】方便快速定位。
- 【调试器】中的箭头可以快速定位页面元素
3. 小程序代码的构成 – 项目结构
3.1 了解项目的基本组成结构
- **pages **用来存放所有小程序的页面
- utils 用来存放工具性质的模块(例如:格式化时间的自定义模块)
-
app.js
小程序项目的入口文件 -
app.json
小程序项目的全局配置文件 - app.wxss 小程序项目的全局样式文件
- project.config.json项目的配置文件
- sitemap.json用来配置小程序及其页面是否允许被微信索引
3.2 小程序页面的组成部分
官方文档提示:小程序的页面,都放在pages目录中,以单独的文件夹存在
其中,每个页面由4个基本文件组成,它们分别是:
- .js文件(页面脚本文件,存放页面的数据、事件处理函数等)
- .json文件 (当前页面的配置文件,配置窗口的外观、表现等)
- .wxml文件(页面的模版结构文件)
- .wxss 文件 (当前页面的样式表文件)
这四个文件最终会被编译成一个文件
3.3 JSON配置文件
小程序项目中有4种json配置文件,分别是:
- 项目根目录中的app.json配置文件
- 项目根目录中的project.config.json配置文件
- 项目根目录中的sitemap.json配置文件
-
每个页面文件夹中的.json配置文件
3.3.1 app.json文件
是当前小程序的全局配置,包括小程序的所有页面路径、窗口外观、界面表现、底部tab等。
配置内容demo
{
"pages":[// 用来记录当前小程序所有页面的路径
"pages/index/index",
"pages/logs/logs"
],
"window":{//全局定义小程序所有页面的背景色、文字颜色等
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",//背景色
"navigationBarTitleText": "Weixin",
"navigationBarTextStyle":"black"
},
"style": "v2",//全局定义小程序组件所使用的样式版本,旧样式版本直接把此节点删除。
"sitemapLocation": "sitemap.json"//用来指明sitemap.json的存放位置,此时是与app.map平级
}
3.3.2 project.config.json文件
project.config.json 用来记录对小程序开发工具所做的个性化配置
拷贝其他的demo到本地修改为自己的小程序,修改成自己的appid,避免报错
{
"description": "项目配置文件",
"packOptions": {
"ignore": [],
"include": []
},
"setting": {//编译相关的配置,开发工具本地设置中,可视化修改将同步到这里。
....
//sitemap的索引提示默认是开启的如需要关闭sitemap的索引提示需添加
"checkSiteMap":"false"
},
"compileType": "miniprogram",
"libVersion": "2.19.4",
"appid": "",//小程序的账号
"projectname": "miniprogram-92",//项目名称,不等于小程序名称
"condition": {},
"editorSetting": {
"tabIndent": "insertSpaces",
"tabSize": 2
}
3.3.3 sitemap.json文件
用来配置小程序页面是否允许微信索引,微信会通过爬虫的形式,为小程序的页面内容建立索引。当用户的搜索关键字和页面的索引匹配成功的时候,小程序的页面将可能展示在搜索结果中。
{
"desc": "",
"rules": [{
"action": "allow",//disallow
"page": "*"
}]
}
sitemap的索引提示默认是开启的如需要关闭sitemap的索引提示需在project.config.json的setting中的配置添加”checkSiteMap”:“false”
3.3.4 页面的 .json 配置文件
小程序中的每一个页面,可以使用 .json文件来对本页面的窗口外观进行配置,页面中的配置会覆盖app.json的window中相同的配置项。
{
"navigationBarBackgroundColor": "#00b26a",
"usingComponents": {}
}
4. 小程序页面
4.1 新增小程序页面
只需要在app.json -> pages中新增页面的存放路径,小程序开发者工具即可帮我们自动创建对应的页面。
4.2 修改项目首页
只需要调整app.json -> pages数组中页面路径的前后顺序,即可修改项目的首页。
小程序会把第一位的页面,当作项目首页进行渲染。
4.3 WXML模版
-
小程序框架设计的一套标签语言,用来构建小程序页面的结构,类似HTML
-
和HTML的区别
- 标签名称不同
- HTML(div,span,img,a)
- WXML(view,text,image,navigator)
-
属性节点不同
-
html <a href=""></a> wxml <navigator url=""></navigator>
-
-
提供了类似于Vue中的模版语法
- 数据绑定
- 列表渲染
- 条件渲染
4.4 WXSS样式
- 一套样式语言,用于描述WXML的组件样式,类似于网页开发中的CSS。
wxss与css的区别
-
新增了rpx尺寸单位
- CSS中需要手动进行像素单位换算,例如rem
- WXSS在底层支持新的尺寸单位rpx,在不同大小的屏幕上小程序会自动进行换算。
-
提供了全局的样式和局部样式
- 项目根目录中的 app.wxss 会作用于所有小程序页面
- 局部页面 .wxss 样式仅对当前页面生效
-
wxss仅支持部分CSS选择器
- .class 和 #id
- element
- 并集选择器、后代选择器
- ::after和 ::before等伪类选择器
5. 小程序代码构成-JS逻辑交互
小程序中的 .js文件
小程序通过.js文件来处理用户的操作。例如:响应用户的点击、获取用户的位置。
小程序中的JS文件分为三大类
- app.js:是整个小程序项目的入口文件,通过调用App()函数来启动整个小程序。
- 页面的.js文件:是页面的入口文件,通过调用Page()函数来创建并运行页面。
- 普通的 .js文件:是普通的功能模块文件,用来封装公共的函数或属性供页面使用。
6. 小程序的宿主环境
宿主环境指的是程序所必须的依赖环境。微信是小程序的宿主环境。小程序借助宿主环境提供的能力,可以完成许多普通网页无法完成的功能,例如:微信扫码、微信支付、微信登录、地理定位、ETC等。
小程序宿主环境包含的内容
- 通信模型
- 运行机制
- 组件
- API
5.1 通信模型
小程序中通信的主体是渲染层和逻辑层,其中:
- WXML模版和WXSS样式工作在渲染层。
- JS脚本工作在逻辑层。
小程序中的通信模型分为两部分
-
渲染层和逻辑层之间的通信
- 由微信客户端进行转发
-
逻辑层和第三方服务器之间的通信
- 由微信客户端进行转发
5.2 运行机制
小程序启动的过程
- 把小程序的代码包下载到本地
- 解析app.json全局配置文件
- 执行app.js小程序入口文件,调用App()创建小程序实例
- 渲染小程序首页
- 小程序启动完成
5.3 页面渲染过程
- 加载解析页面的.json配置文件
- 加载页面的 .wxml模版和 .wxss样式
- 执行页面的 .js文件,调用Page()创建页面实例
- 页面渲染完成
第三方服务器之间的通信
- 由微信客户端进行转发
5.2 运行机制
小程序启动的过程
- 把小程序的代码包下载到本地
- 解析app.json全局配置文件
- 执行app.js小程序入口文件,调用App()创建小程序实例
- 渲染小程序首页
- 小程序启动完成
5.3 页面渲染过程
- 加载解析页面的.json配置文件
- 加载页面的 .wxml模版和 .wxss样式
- 执行页面的 .js文件,调用Page()创建页面实例
- 页面渲染完成