微信小程序学习(四)

一、小程序的配置:

全局配置:即在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的理解和调用了,当遇到新的问题时我也会更新之前的内容。学如逆水行舟、不进则退;加油通过最后的学习时光升华自己!!!)

发布了79 篇原创文章 · 获赞 81 · 访问量 5730

猜你喜欢

转载自blog.csdn.net/weixin_44638960/article/details/102934421
今日推荐