微信小程序有几个基础的文件:js(JavaScript逻辑代码),json(页面配置),wxml(类似hthml布局),wxss(css样式)
我们使用app.json
文件来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。
以下是一个包含了所有配置选项的简单配置app.json
:
{
"pages": [
"pages/index/index",
"pages/logs/index"
],
"window": {
"navigationBarTitleText": "Demo"
},
"tabBar": {
"list": [{
"pagePath": "pages/index/index",
"text": "首页"
}, {
"pagePath": "pages/logs/logs",
"text": "日志"
}]
},
"networkTimeout": {
"request": 10000,
"downloadFile": 10000
},
"debug": true
}
app.json 配置项列表
属性 | 类型 | 必填 | 描述 |
---|---|---|---|
pages | Array | 是 | 设置页面路径 |
window | Object | 否 | 设置默认页面的窗口表现 |
tabBar | Object | 否 | 设置底部 tab 的表现 |
networkTimeout | Object | 否 | 设置网络超时时间 |
debug | Boolean | 否 | 设置是否开启 debug 模式 |
在自动生成的json文件里需要pages和window,tabBar,下面解释一下pages和window
1.pages
pages接收一个数组,每一项都是字符串来指定小程序的每一个页面,每一项代表对应页面的[路径+文件名]。数组的第一项代表小程序的初始页面,小程序新增或者减少页面,都需要对pages进行修改。
文件名不需要写文件后缀,因为框架会自动去寻找路径 .json .js .wxml .wxss的四个文件进行整合。
例子:
//pages: String Array 设置页面路径
"pages":[
"pages/index/index",
"pages/logs/logs",
"pages/account/account"
],
2.window
用于设置小程序的状态栏,导航条,标题,窗口背景色。
//window: Object 设置默认页面的窗口表现
"window":{
"enablePullDownRefresh":true, //是否开启下拉刷新
"backgroundColor":"fff", //窗口的背景色
"backgroundTextStyle":"light", //下拉背景字体、loading 图的样式,仅支持 dark/light
"navigationBarBackgroundColor": "red", //导航栏背景颜色
"navigationBarTitleText": "同舟快递", //导航栏标题文字内容
"navigationBarTextStyle":"black" //导航栏标题颜色,仅支持 black/white
},
3.tabBar
如果我们的应用是一个多tab应用(客户端窗口的底部和顶部有tab栏可以进行切换),那么我们可以通过tabBar配置项指定tab栏的表现,以及tab切换时显示的对应页面。
Tip:通过页面跳转(wx.navigationTo)或者页面重定向(wx.redirectTo)所到达的页面,即使他是定义在tabBar配置中的页面,也不会显示底部的tab栏。
tabBar是一个数组,只能配置最少2个,最多5个,tab按数组的顺序排序。
其中list接收一个数组,数组中的每一个项都是一个对象,
例子:
//tabBar: Object 设置底部 tab 的表现
"tabBar": {
"list": [{
"pagePath": "pages/index/index", //页面路径,必须在 pages 中先定义
"text": "首页", //tab 上按钮文字
"iconPath": "", //图片路径,icon 大小限制为40kb,
"selectedIconPath":"" //选中时的图片路径,icon 大小限制为40kb
}, {
"pagePath": "pages/logs/logs",
"text": "日志"
}, {
"pagePath": "pages/account/account",
"text": "个人中心"
}]
},//.确认你的list集合长度不小于2且不大于5 (官方要求的)