来写点微信小程序吧:D) ---- 分析小程序目录结构与配置
2017-01-15 本文已影响541人
张照博
开篇语
开篇语已经在热身阶段说过了,所以就不重复了。有兴趣的读者移步
来写点微信小程序吧:D) ~~~(热身阶段)
以及前面借鉴小程序开发官方文档的简易教程写的总纲
来写点微信小程序吧:D) ~~~狂奔阶段
张小龙学长上一张学长的图片镇楼,下面直接上开发过程笔记。
正文
一、 小程序主体部分由三个文件组成,必须放在根目录(即最外层目录)下,分别是:
- app.js
小程序逻辑
- app.json
小程序公共设置
- app.wxss
小程序公共样式表
而在根目录之下,就是各个分开的页面的文件,由四个基本文件组成。
js
页面逻辑
- wxml
页面结构
- wxss
页面样式表
如图
- json
页面配置
配置如上二、 在app.js中配置的是整个小程序的格调。决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。
简单应用如下:
{
"pages": [
"pages/index/index",
"pages/logs/index"
],
"window": {
"navigationBarTitleText": "The-First-Program-of-ZhangZhaobo"
},
"tabBar": {
"list": [{
"pagePath": "pages/index/index",
"text": "首页"
}, {
"pagePath": "pages/logs/logs",
"text": "日志"
}]
},
"networkTimeout": {
"request": 10000,
"downloadFile": 10000
},
"debug": true
}
演示效果如图
1、 pages
接受一个数组,每一项都是字符串,来指定小程序由哪些页面组成。每一项代表对应页面的【路径+文件名】信息,数组的第一项代表小程序的初始页面。小程序中新增/减少页面,都需要对 pages 数组进行修改。
文件名不需要写文件后缀,因为框架会自动去寻找路径.json,.js,.wxml,.wxss的四个文件进行整合。
如开发目录为:
pages/index/index.wxml
pages/index/index.js
pages/index/index.wxss
pages/logs/logs.wxml
pages/logs/logs.js
app.js
app.json
app.wxss
则,我们需要在 app.json 中写
{
"pages":[
"pages/index/index"
"pages/logs/logs"
]
}```
![结构如图](http://upload-images.jianshu.io/upload_images/3810775-124a952b50057880.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
>2、 window
用于设置小程序的状态栏、导航条、标题、窗口背景色
![window的属性列表](http://upload-images.jianshu.io/upload_images/3810775-d43cef5050587c85.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
>下列代码有如图所示的效果:
{
"window":{
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "微信接口功能演示",
"backgroundColor": "#eeeeee",
"backgroundTextStyle": "light"
}
}
![图片来自微信官文](http://upload-images.jianshu.io/upload_images/3810775-21212db1b4fb7f44.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
>3、 tabBar
如果我们的小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),那么我们可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。
>tabBar 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。
![图片来自微信小程序官文](http://upload-images.jianshu.io/upload_images/3810775-98bc1b69393fc888.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
属性说明:
>4、 networkTimeout
可以设置各种网络请求的超时时间。
![属性说明](http://upload-images.jianshu.io/upload_images/3810775-3832b5eed3e7937b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
---------------------------
>三、 page.json
每一个小程序页面也可以使用.json文件来对本页面的窗口表现进行配置。 页面的配置比app.json全局配置简单得多,只是设置 app.json 中的 window 配置项的内容,页面中配置项会覆盖 app.json 的 window 中相同的配置项。
>页面的.json只能设置 window 相关的配置项,以决定本页面的窗口表现,所以无需写 window 这个键,如:
![Page.json的属性说明,来自官文](http://upload-images.jianshu.io/upload_images/3810775-7df1a4e25b33d7d8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![效果演示图](http://upload-images.jianshu.io/upload_images/3810775-bc18b3debeb5d382.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![修改并且覆盖app.json的设置后的颜色](http://upload-images.jianshu.io/upload_images/3810775-ed6d7f3258ba9597.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
#结束语
>小程序算是假期的一个调剂吧,不然真的就是天天看小说,看视频的糜烂生活了。所以要是大家有兴趣的话,可以关注一下我的进度。当然,小程序不是我的全部,寒假清单里可没有小程序的容身之地。所以可能会有存在时断时续的状况,不过这都不是问题。后面我也会持续的跟进我对官方文档的解读进度,对Javascript理解不深,所以难免有的地方会存在一些错误,敬请谅解,不过基本上每一个原创点都是经过我自己的调试Debug,高手别来笑话我这些低端,毕竟目前我还是很菜的。OK,简书写完了。我仿佛已经听到了Keep在召唤我。回家了就要按时睡觉吗~~ ~ ~搞完活动碎觉咯~ ~
#个人宣言
>知识传递力量,技术无国界,文化改变生活!