一、小程序的配置:
全局配置:即在app.json进行配置的信息:(下表仅仅列出常用的几种)
属性 | 类型 | 必填 | 描述 |
---|---|---|---|
pages | string[] | 是 | 页面路径列表,存放所有页面路径 |
window | Object | 否 | 全局的默认窗口表现,设置窗口样式 |
tabBar | Object | 否 | 底部 tab 栏的表现,底部导航栏 |
networkTimeout | Object | 否 | 网络超时时间(一般不用定义) |
requiredBackgroundModes | string[] | 否 | 需要在后台使用的能力,如「音乐播放」 |
resizable | boolean | 否 | iPad 小程序是否支持屏幕旋转,默认关闭 |
navigateToMiniProgramAppIdList | string[] | 否 | 需要跳转的小程序列表 |
usingComponents | Object | 否 | 全局自定义组件配置 |
style | String | 否 | 指定使用升级后的weui样式 |
window 用于设置小程序的状态栏、导航条、标题、窗口背景色。
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
navigationBarBackgroundColor | HexColor | #000000 | 导航栏背景颜色,如 #000000 |
navigationBarTextStyle | string | white | 导航栏标题颜色,仅支持 black / white |
navigationBarTitleText | string | 导航栏标题文字内容 | |
navigationStyle | string | default | 导航栏样式,仅支持以下值:default 默认样式custom 自定义导航栏,只保留右上角胶囊按钮。参见注 2。 |
backgroundColor | HexColor | #ffffff | 窗口的背景色 |
backgroundTextStyle | string | dark | 下拉 loading 的样式,仅支持 dark / light |
backgroundColorTop | string | #ffffff | 顶部窗口的背景色,仅 iOS 支持 |
backgroundColorBottom | string | #ffffff | 底部窗口的背景色,仅 iOS 支持 |
enablePullDownRefresh | boolean | false | 是否开启全局的下拉刷新。 |
onReachBottomDistance | number | 50 | 页面上拉触底事件触发时距页面底部距离,单位为 px。 |
pageOrientation | string | portrait | 屏幕旋转设置,支持 auto / portrait / landscape |
window使用例子:(也是比较常用的几个属性,一般不需要用户配置)
{
"window": {
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "微信接口功能演示",
"backgroundColor": "#eeeeee",
"backgroundTextStyle": "light"
}
} // 直接写在json文件中即可
TabBar的内置属性及其功能:其中 list 接受一个数组,只能配置最少 2 个、最多 5 个 tab。tab 按数组的顺序排序。
属性 | 类型 | 必填 | 默认值 | 描述 |
---|---|---|---|---|
color | HexColor | 是 | tab 上的文字默认颜色,仅支持十六进制颜色 | |
selectedColor | HexColor | 是 | tab 上的文字选中时的颜色,仅支持十六进制颜色 | |
backgroundColor | HexColor | 是 | tab 的背景色,仅支持十六进制颜色 | |
borderStyle | string | 否 | black | tabbar 上边框的颜色, 仅支持 black / white |
list | Array | 是 | tab 的列表,详见 list 属性说明,最少 2 个、最多 5 个 tab |
|
position | string | 否 | bottom | tabBar 的位置,仅支持 bottom / top |
custom | boolean | 否 | false | 自定义 tabBar |
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
pagePath | string | 是 | 页面路径,必须在 pages 中先定义 |
text | string | 是 | tab 上按钮文字 |
iconPath | string | 否 | 图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。 当 position 为 top 时,不显示 icon。 |
selectedIconPath | string | 否 | 选中时的图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。 当 position 为 top 时,不显示 icon。 |
"tabBar": {
"list": [{
"pagePath": "pagePath",
"text": "text",
"iconPath": "iconPath",
"selectedIconPath": "selectedIconPath"
}]
} //当有多个字菜单时只需要在list中添加即可
页面配置:page配置与全局配置基本一致。(配置的范围比较小,一般具体程序也不会对其进行配置)
二、框架接口
注册小程序,接受一个 Object
参数,其指定小程序的生命周期回调等。App() 必须在 app.js
中调用,必须调用且只能调用一次
Page({
/**
* 页面的初始数据
*/
data: {
//是页面第一次渲染使用的初始数据。页面加载时,data 将会以JSON字符串的形式由逻辑层传至渲
//染层,因此data中的数据必须是可以转成JSON的类型:字符串,数字,布尔值,对象,数组。
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
}) //page页面中的js部分,一般后台代码放在此处处理即可,也可以在内部定义用户自定义函数
Page.prototype.setData(Object data, Function callback):setData
函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data
的值(同步)。(常用实现页面的动态刷新,但不能过分使用)
(注:直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致。)
模块化:返回模块通过module.exports或 exports暴露的接口;
module.exports."对外暴露的接口名称"="内部接口名称" //一般来说两名称相同
exports."对外暴露的接口名称"="内部接口名称"
//模块化简化了程序规模,便于维护;
基本功能:测试时一般使用console.log(打印输出内容),以此验证数据的正确性;
除此之外,我们也可以使用一下函数(方法)实现动态效果上一篇的心跳就是以此为依托实现的^_^
number setTimeout(function callback, number delay, any rest);//number为计时器id,(回调函数,延时时间,附加参数)
clearTimeout(number timeoutID)和clearInterval(number intervalID);//通过计时器id来清除对应计时器
number setInterval(function callback, number delay, any rest);//常用每delay时间后执行回调函数一次
三、WXML的相关语法
WXML的语法基本与HTML一致,只是标记名称有所不同而已。
数据绑定:WXML 中的动态数据均来自对应 Page 的 data;(要绑定的数据全部写在data里面)
简单绑定:{{data中的绑定字段}};(绑定WXML文本信息不需要放在引号内,除此之外都要放在引号内)
(注:在{{}}内部可以进行各种运算,可以简单的理解为它是一个JavaScript,理解可能有误,哈哈)
列表渲染:在组件上使用 wx:for
控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。
默认数组的当前项的下标变量名默认为 index
,数组当前项的变量名默认为 item
如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态,需要使用 wx:key
来指定列表中项目的唯一的标识符。(给绑定内容提供一个键值,唯一标识)
注意:1、当wx:for绑定的是字符串时,item为单个字符而不是整个字符串;2、当绑定{{}}与外部引号有空格间隔时,其会被解析为字符串;
条件渲染:使用 wx:if=""
来判断是否需要渲染该代码块(内部一般绑定逻辑表达式)
四、WXS的相关语法
暴露接口的两种方法:上面已经提到不再赘述;
三种注释方式:
// 方法一:单行注释
/*
方法二:多行注释
*/
/*
方法三:结尾注释。即从 /* 开始往后的所有 WXS 代码均被注释
变量命名规则:1、首字符必须是:字母(a-zA-Z),下划线(_);
2、剩余字符可以是:字母(a-zA-Z),下划线(_), 数字(0-9)
保留字:(编译器会给你提示,不用记忆)
delete、void、typeof、null、undefined、NaN、Infinity、var、if、else、true、false
require、this、function、arguments、return、for、while、do、break、continue、switch
case、default
//只要你写出来的不是蓝色提示符一般都可以
语句结构:顺序、选择、循环;(基本上和所有的程序语法一致)
变量类型:
number
: 数值 (代表整数和小数)string
:字符串 (用引号标识)boolean
:布尔值 (true和false)object
:对象function
:函数 (function标识)array
: 数组 (用【】标识)date
:日期regexp
:正则
//方法 1
function a (x) {
return x;
}
//方法 2
var b = function (x) {
return x;
} //函数定义的两种方式,第二种等号可以变为冒号
运算符:加、减、乘、除、余、比较运算符等;(就是我们常见的数学符号)
具体变量属性和内置方法详见官方文档:https://developers.weixin.qq.com/miniprogram/dev/reference/wxs/06datatype.html
除此之外还提供了基础类库:https://developers.weixin.qq.com/miniprogram/dev/reference/wxs/07basiclibrary.html 来满足我们常用的操作。
(到此为止小程序的基础知识已经基本结束,下面就是对API的理解和调用了,当遇到新的问题时我也会更新之前的内容。学如逆水行舟、不进则退;加油通过最后的学习时光升华自己!!!)