js css html

四,视图与逻辑

2023-03-12  本文已影响0人  扶光_

一,页面导航

就是页面之间的互相跳转

微信小程序有两种跳转

1.1声明式导航(sxml)

<navigator>
导航到tabBar页面

<navigator url=" /" open-type="switchTab">点击跳转</navigator>

导航到非tabBar页面


后退导航

1.2编程式导航(js)

调用api
导航到tabBar页面

属性 类型 是否必选 说明
url String 需要跳转的 tabBar 页面的路径,路径后面不能携带参数
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(成功、失败都会执行)

导航到非tabBar页面
wx.navigateTo(Object Object)

属性 类型 是否必选 说明
url String 需要跳转的非 tabBar 页面的路径,路径后面可以携带参数
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(成功、失败都会执行)

后退导航
wx.navigateBack(Object Object)

属性 类型 默认值 是否必选 说明
delta Number 1 返回的页数,大于现有页面数,则返回到首页
success function / 接口调用成功的回调函数
fail function / 接口调用失败的回调函数
complete function / 接口调用结束的回调函数(成功、失败都会执行)

1.3导航传参

声明式导航

<navigator url="/pages/test?name=hx&age=16">

编程式导航传参

在 onLoad 中接收导航参数

onload(option){
//option就是导航传过来的参数
  console.log(option)
this.setData({
    query:options
    })
}

二,页面事件

2.1下拉刷新时间

启用下拉刷新

{
    "usingComponents": {},
    "enablePullDownRefresh": true,
    "backgroundColor": "#efefef",
    "backgroundTextStyle": "dark"
}
onPullDownRefresh(){

//关闭下拉刷新效果
wx.stopPullDownfresh()
}

2.2上拉触底事件

onReachBottom(){
  console.log("出发了触底事件")
}
getColors() {
    // 展示 loading 效果
    wx.showLoading({
        title: '数据加载中...',
    })
    // 发起请求,获取随机颜色的数组
    wx.request({
        url: 'https://www.escook.cn/api/color',
        method: 'GET',
        success:({data: res}) => {
            console.log(res)
            this.setData({
                colorList: [this.data.colorList, ...res.data]
            })
        },
        // 隐藏 loading 效果
        complete: () => {
            wx.hideLoading()
        }
    })
},

2.3节流处理

// pages/Color/Color.js
Page({

    /**
   * 页面的初始数据
   */
    data: {
        // 随机颜色的列表
        colorList: [],
        // 节流阀
        isLoading: false
    },

    // 获取随机颜色的方法
    getColors() {
        this.setData({
            isLoading: true
        })

        // 展示 loading 效果
        wx.showLoading({
            title: '数据加载中...',
        })
        // 发起请求,获取随机颜色的数组
        wx.request({
            url: 'https://www.escook.cn/api/color',
            method: 'GET',
            success:({data: res}) => {
                console.log(res)
                this.setData({
                    colorList: [this.data.colorList, ...res.data]
                })
            },
            // 隐藏 loading 效果
            complete: () => {
                wx.hideLoading()
                this.setData({
                    isLoading: false
                })
            }
        })
    },

    /**
   * 生命周期函数--监听页面加载
   */
    onLoad(options) {
        this.getColors()
    },

    /**
   * 页面上拉触底事件的处理函数
   */
    onReachBottom() {
        if (this.data.isLoading) return
        this.getColors()
    }
})
上一篇下一篇

猜你喜欢

热点阅读