app.js
是程序的初始化脚本,可以在这个文件中监听小程序的生命周期,申请全局变量和调用api等。
在这个脚本中使用App()来注册一个小程序,且不能注册多个。
App({
onLaunch: function(){},//监听初始化
onShow: function(){},//监听显示(进入前台)
onHide: function(){},//监听隐藏(进入后台:按Home键离开微信)
onError: function(msg){},//监听错误
//如下为自定义的全局方法和变量
globalFun: function(){},
globalData: 'I am global data'
})
app.json
是对小程序的全局配置。主要分为五个部分:
(1)pages:页面组
(2)window:框架样式(状态栏、导航条、标题、窗口背景色)
(3)tabBar:底部菜单
(4)networkTimeout:网络超时设置
(5)debug:开启debug模式
而page.json针对页面单独设置,层叠掉app.json的全局设置。
app.wxss
是整个小程序的公共样式表,类似网站开发中的common.css
pages
默认第一条为首页。一个文件夹中中会有四个不同的类型的文件组成,js是脚本,json是配置文件,wxss是样式表文件,wxml是页面结构文件,其中json和wxss文件为非必须(默认为继承app的json和wxss).
在每个页面的js文件中可以使用Page()注册一个页面。
Page({
data: {text: "This is page data."},//页面数据,用来维护视图,json格式
onLoad: function(options){},//监听加载
onReady: function(){},//监听初次渲染完成
onShow: function(){},//监听显示
onHide: function(){},//监听隐藏
onUnload: function(){},//监听卸载
onPullDownRefresh: function(){},//监听下拉
onReachBottom: function(){}//监听下拉触底
onSharedAppMessage: function(){},//监听右上角分享
//如下为自定义的事件处理函数(视图中绑定)
viewTap: function(){//setData设置data值,同时将更新视图
this.setData({text: 'Set som data for updating view.'})
}
})
在每个页面中的wxml文件中,对页面js中data进行数据绑定,以及自定义事件绑定。
<!--{{}}绑定data中的指定数据并渲染到视图-->
<view class="title">{{text}}</view>
<!--wx:for获取数组数据进行循环渲染,item为数组的每项-->
<view wx:for="{{array}}"> {{item}} </view>
<!--wx:if条件渲染-->
<view wx:if="{{view == 'WEBVIEW'}}"> WEBVIEW </view>
<view wx:elif="{{view == 'APP'}}"> APP </view>
<view wx:else="{{view == 'MINA'}}"> MINA </view>
<!--模板-->
<template name="staffName">
<view>FirstName: {{firstName}}, LastName: {{lastName}}</view>
</template>
<template is="staffName" data="{{...template.staffA}}"></template>
<template is="staffName" data="{{...template.staffB}}"></template>
<!--bindtap指定tap事件处理函数为ViewTap-->
<view bindtap="ViewTap"> 点我点我 </view>
小程序的启动
微信客户端在打开小程序之前,会把整个小程序的代码包下载到本地。
紧接着通过app.json的pages字段就可以知道你当前小程序的所有路径。
{
"pages":[
"pages/index/index",
"pages/logs/logs"
]
}
而写在pages字段的第一个页面就是这个小程序的首页(打开小程序看到的第一个页面)。
于是微信客户端就把首页的代码装载进来,通过小程序底层的一些机制,就可以渲染这个首页。
小程序启动之后,在app.js定义 的App实例的onLauch回调会被执行:
App({
onLaunch: function () {
// 小程序启动之后 触发
}
})