微信小程序---(二)

一、微信小程序页面导航 

页面导航:指的是页面之间的相互跳转。

浏览器中实现页面导航的方式有两种:

(1)<a>链接;

(2)location.href

1、小程序实现页面导航的方式

(1)声明式导航:

  a、在页面声明一个<navigator>导航组件

  b、通过点击<navigator>组件实现页面跳转

(2)编程式导航

调用小程序的导航API

2、声明式导航

2.1 跳转到tabBar页面

<navigator url="/pages/message/message" open-type="switchTab">图表页面</navigator>

url:表示要跳转到的页面的地址。必须以 / 开头

open-type:表示跳转的方式,必须为switchTab

2.2 跳转到非tabBar页面

url:表示要跳转到的页面的地址。必须以 / 开头

open-type:表示跳转的方式,必须为navigate.可省略不写

3.3 后退导航

open-type:值必须是naviateBack,表示要后退的导航

delta:值必须是数字,表示后退层级;默认值为1(可视情况省略)

<navigator open-type="navigateBack" delta="2">页面后退</navigator>

3、编程式导航

3.1 tabBar页面

wx.switchTab(Object object),参数属性如下:

url:需要跳转的tabBar页面的路径,路径后不能带参数(必填)

sucess:接口调用成功后的回调函数

fail:接口调用失败后的回调函数

complete:接口调用结束后的回调函数

gotoMessage() {

   wx.switchTab({

       url:'/pages/message/message'

   })

}

3.2 导航到非tabBar页面

wx.navigateTo(Object object),参数如下:

url:需要跳转的tabBar页面的路径,路径后可以带参数(必填)

sucess:接口调用成功后的回调函数

fail:接口调用失败后的回调函数

complete:接口调用结束后的回调函数

3.3 后退导航

wx.navigateBack(Object object),参数如下:

delta:返回的页数,若大于现有页面数,则返回首页

sucess:接口调用成功后的回调函数

fail:接口调用失败后的回调函数

complete:接口调用结束后的回调函数

4、导航传参

4.1 声明式导航传参

参数与路径之间用?分隔

参数键与参数值用=相连

不同参数用&分隔

4.2 编程式导航传参

wx.navigateTo(Object object)跳转页面,也可携带参数

4.3 在onload中接收导航参数

通过声明式导航传参或编程式导航传参所携带的参数,可以直接在onLoad事件中直接获取到

二、微信小程序页面事件

1、下拉刷新

移动端专有名词,指的是手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为

1.1 启用下拉刷新的两种方式:

(1)全局开启下拉刷新:(不推荐使用)

app.json----window节点------enablePullDownRefresh设置为true

(2)局部开启下拉刷新:(为需要的页面单独开启下拉刷新效果)

页面的.json配置文件中,enablePullDownRefresh设置为true

1.2 配置下拉刷新窗口的样式

在全局或页面的.json配置文件中,通过backgroundColor和backgroundTextStyle配置下拉刷新窗口的样式:

backgroundColor:窗口的背景颜色,仅支持16进制的颜色值

backgroundTextStyle:loading的样式,仅支持dark和light

"backgroundColor": "#efefef",

"backgroundTextStyle": "dark"

1.3 监听页面的下拉刷新事件

在页面的.js文件中,通过onPullDownRefresh()函数即可监听当前页面的下拉刷新事件

1.4 停止下拉刷新效果

wx.stopPullDownRefresh(),可以停止当前页面的下拉刷新

2、上拉触底

通过手指在屏幕上的上拉滑动操作,从而加载更多数据的行为

2.1 监听页面上拉触底事件

在页面的.js文件中,通过onReachBottom()函数即可监听当前页面的上拉触底事件

节流处理

2.2 配置上拉触底的距离

上拉触底的距离:触发上拉触底事件时,滚动条距离页面底部的距离

全局或页面的.json配置文件中,onReachBottomDistance()配置上拉触底的距离

三、微信小程序的生命周期

生命周期:一个对象从创建---运行---销毁的整个阶段

1、小程序生命周期(时间段)的两个分类:

(1)应用生命周期:小程序从启动---运行---销毁的过程

(2)页面生命周期:每个页面的加载----渲染---销毁的过程

2、生命周期函数(时间点)

由小程序框架提供的内置函数,会伴随生命周期,自动按次序执行

作用:允许在特定时间,执行某些特定操作

3、生命周期函数的分类:

(1)应用生命周期函数:小程序从启动---运行---销毁期间依次调用的那些函数

(2)页面生命周期函数:每个页面的加载----渲染---销毁期间依次调用的函数

3.1 应用生命周期函数

需要在app.js中进行声明

App({

  /**

  * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)

  */

  onLaunch: function () {

   console.log('onlaunch')

  },

  /**

  * 当小程序启动,或从后台进入前台显示,会触发 onShow

  */

  onShow: function (options) {},

  /**

  * 当小程序从前台进入后台,会触发 onHide

  */

  onHide: function () {},

})

3.2 页面生命周期函数

页面生命周期函数需要在.js文件中进行声明,

Page({

   /**

    * 页面的初始数据

    */

   data: {

   },

   /**

    * 生命周期函数--监听页面加载

    */

   onLoad: function (options) {

   },

   /**

    * 生命周期函数--监听页面初次渲染完成

    */

   onReady: function () {

   },

   /**

    * 生命周期函数--监听页面显示

    */

   onShow: function () {

   },

   /**

    * 生命周期函数--监听页面隐藏

    */

   onHide: function () {

   },

   /**

    * 生命周期函数--监听页面卸载

    */

   onUnload: function () {

   },

   /**

    * 页面相关事件处理函数--监听用户下拉动作

    */

   onPullDownRefresh: function () {

   },

   /**

    * 页面上拉触底事件的处理函数

    */

   onReachBottom: function () {

   },

   /**

    * 用户点击右上角分享

    */

   onShareAppMessage: function () {

   }

})

四、wxs脚本

wxs(weixin Script)是小程序独有的一套脚本语言,结合WXML,可以构建出页面的结构

wxml中无法调用在页面中的.js中定义的函数,但是,wxml中可以调用wxs中定义的函数。因此,小程序中wxs的典型应用场景就是“过滤器”

1、wxs与javaScript的关系

区别:

(1)wxs有自己的数据类型

number string boolean  object function array date regexp

(2)wxs不支持类似于Es6及以上的语法形式

不支持:let const 解构赋值 展开运算符 箭头函数 对象属性简写.....

支持:var定义变量、普通function函数等类似于Es5的语法

(3)wxs遵循CommonJS规范

module对象

require函数

module.exports对象

2、内嵌wxs脚本

wxs代码可以编写在wxml文件中的<wxml>标签内,就像JavaScript代码的<script>标签

wxml文件中的每个<wxs></wxs>标签,必须提供moudle属性,用来指定当前wxs的模块名称,方便在wxml中访问模块中的成员:

<view>{{m1.toUpper(username)}}</view>

<wxs module="m1">

module.exports.toUpper = function(str) {

     return str.toUpperCase()

}

</wxs>

3、外联的wxs脚本

wxs代码还可编写在以.wxs为后缀名的文件内。

在wxml引入外联的wxs脚本时,必须为<wxs>标签添加module和src属性,其中:

module用来指定模块名称

src用来指定要引入的脚本的路径,且必须是相对的路径

4、wxs的四个特点

(1)与JavaScript不同

(2)不能作为组件的事件回调

wxs典型的应用场景是'过滤器',经常配合Mustache语法进行使用;

但是在wxs中定义的函数不能作为组件的事件回调函数。

(3)隔离性:wxs的运行环境与JavsScript代码是隔离的。wxs不能调用js中定义的函数;wxs不能调用小程序提供的API

(4)性能好:在ios设备上,小程序内的WXS会比JavaScript代码块2-20倍;在android设备上,二者的运行效率无差异

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容