一、微信小程序基本介绍
1、什么是微信小程序
微信小程序简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用 小程序是一种新的开放能力,开发者可以快速地开发一个小程序。小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验
2、发展历程
2016年1月11日,微信之父张小龙解读了微信的四大价值观,指出拆分出来的服务号并没有提供更好的服务,所以微信内部正在研究新的形态,叫「微信小程序」 2016年9月21日,微信小程序正式开启内测 2017年1月9日0点,微信第一批小程序正式上线
二.第一个小程序
1、注册小程序
-  注册微信小程序账号:小程序 
2、获取小程序的AppID
扫码登录后进入小程序管理后台,左侧栏中选择开发>开发管理>开发设置,就能看到AppID(小程序ID)
3、微信开发者工具
下载地址:微信开发者工具下载地址与更新日志 | 微信开放文档
4、创建小程序项目
5、 查看运行效果
-  在模拟器上查看项目效果:单击编译按钮即可 
-  在真机上预览项目效果:单击的预览按钮,然后生成二维码后,使用手机扫描,就可以看到真机的效果了。 
6、目录结构解析

-  app.json 是对当前小程序的全局配置,包括了小程序的所有页面路径、界面表现、网络超时时间、底部 tab 等 
-  project.config.json 工具配置,例如界面颜色、编译配置等等 
-  app.js小程序的初始化脚本,监听小程序生命周期,全局变量,定义API全剧调用 
-  app.wxss小程序的全局配置公共样式表 
一个小程序页面由四个文件组成,分别是
| 文件类型 | 必需 | 作用 | 
|---|---|---|
| js | 是 | 页面逻辑 | 
| wxml | 是 | 页面结构 | 
| json | 否 | 页面配置 | 
| wxss | 否 | 页面样式 | 
注意:为了方便开发者减少配置项,描述页面的四个文件必须具有相同的路径与文件名
三、配置文件
1、配置文件概述
JSON是一种数据格式,在实际开发过程中,JSON总是以配置文件的形式出现,小程序项目中也不例外;通过不同的.json配置文件,可以对小程序项目进行不同级别的配置。
小程序项目中的4种JSON配置文件,分别是
-  项目根目录中的app.json配置文件 
-  每个页面文件夹中的.json配置文件 
-  项目根目录中的project.config.json配置文件 
-  项目根目录中的sitemap.json配置文件 
2、project.config.json
project.config.json是项目配置文件,用来记录我们对小程序开发工具所做的个性化配置
-  settings中保存了编译相关的配置 
-  projectname中保存的是项目名称 
-  appid中保存的是小程序的账号ID 
3、sitemap配置
微信现已开放小程序内搜索,开发者可以通过 sitemap.json 配置,或者管理后台页面收录开关来配置其小程序页面是否允许微信索引。当开发者允许微信索引时,微信会通过爬虫的形式,为小程序的页面内容建立索引。当用户的搜索词条触发该索引时,小程序的页面将可能展示在搜索结果中。 爬虫访问小程序内页面时,会携带特定的 user-agent:mpcrawler 及场景值:1129。需要注意的是,若小程序爬虫发现的页面数据和真实用户的呈现不一致,那么该页面将不会进入索引中。
4、页面配置page.json
页面配置page.json
这里的page.json其实用来表示页面下的page.json,这类和小程序页面的相关的配置
开发者可以独立定义每个页面的一些属性,如顶部颜色、是否允许下拉刷新等等
页面的配置只能设置app.json中部分window配置项的内容,页面中配置项会覆盖app.json额window中相同的配置项
{"usingComponents": {},"navigationBarBackgroundColor": "#f094ff"
}这里修改的是mime.json中导航栏背景色为#f094ff
5、全局配置文件
app.json是当前小程序的全局配置,包括了小程序的所有页面路径,界面表现,网络超时时间,底部tab等。
{"pages":["pages/index/index","pages/logs/logs"],"window":{"backgroundTextStyle":"light","navigationBarBackgroundColor": "#fff","navigationBarTitleText": "Weixin","navigationBarTextStyle":"black"},"style": "v2","sitemapLocation": "sitemap.json"
}字段含义
-  pages字段: 用来记录当前小程序所有页面的路径。 
-  windows字段:全局定义小程序所有页面的顶部背景颜色,文字颜色定义等。 
-  style:全局定义小程序组件所使用的样式版本。 
-  sitemapLocation:用来指明sitemap.json的位置。 
window字段常用的配置项
| 属性名 | 类型 | 默认值 | 说明 | 
|---|---|---|---|
| navigationBarTitleText | String | 字符串 | 导航栏标题文字内容 | 
| navigationBarBackgroundColor | HexColor | #000000 | 导航栏背景颜色,如#000000 | 
| navigationBarTextStyle | String | white | 导航栏标题颜色,仅支持black/white | 
| backgroundColor | HexColor | #ffffff | 窗口背景色 | 
| backgroundTextStyle | String | dark | 下拉loading的样式,仅支持dark/light | 
| enablePullDownReferesh | Boolean | false | 是否全局开启下拉刷新 | 
| enReachBottomDistance | Number | 50 | 页面上拉触底时间触发时距页面底部距离,单位为px | 
6、tabBar配置
1)什么是tabBar
tabBar是移动端常见的效果,用于实现多页面的快速切换。小程序中通常将其分为
-  底部tabBar 
-  顶部tabBar 
注意:
-  tabBar中只能配置最少2个,最多5个tab页签 
-  当渲染顶部tabBar时候,不显示icon,只显示文本 
2)tabBar节点的配置项
| 属性 | 类型 | 必填 | 说明 | 
|---|---|---|---|
| position | String | 否 | tabBar的位置,仅支持bottom/top | 
| borderStyle | String | 否 | tabBar上边框的颜色,仅支持black/white | 
| color | HexColor | 否 | tab上文字的默认(未选中)颜色 | 
| selectedColor | HexColor | 否 | tab上的文字选中时的颜色 | 
| backgroundColor | HexColor | 否 | tabBar的背景色 | 
| list | Array | 是 | tab页签的列表,最少2个、最多5个 | 
-  selectedIconPath:选中时的图片路径 
-  iconPath:未选中时的图片路径 
在app.json中添加tabBar节点,具体内容如下代码
"tabBar": {"list": [{"pagePath": "pages/index/index","text": "首页","iconPath": "./assets/icons/home.png","selectedIconPath": "./assets/icons/home_selected.png"},{"pagePath": "pages/category/category","text": "分类","iconPath": "./assets/icons/category.png","selectedIconPath": "./assets/icons/category_selected.png" },{"pagePath": "pages/mine/mine","text": "我的","iconPath": "./assets/icons/mine.png","selectedIconPath": "./assets/icons/mine_selected.png" }]