微信小程序快速入门02(含案例)

在这里插入图片描述

🏡浩泽学编程:个人主页

 🔥 推荐专栏:《深入浅出SpringBoot》《java项目分享》
              《RabbitMQ》《Spring》《SpringMVC》

🛸学无止境,不骄不躁,知行合一

文章目录

  • 前言
  • 一、页面导航
    • 1.声明式导航
    • 2.编程式导航
  • 二、页面事件
    • 1.下拉刷新
    • 2.上拉触底
  • 总结


前言

讲诉内容:页面导航、页面事件。


一、页面导航

页面导航指的是页面之间的相互跳转。例如,浏览器中实现页面导航的方式有如下两种:

  • < a > 链接
  • location.href

小程序实现页面导航的两种方式:

  • 声明式导航
    • 在页面上声明一个< navigator >导航组件
    • 通过点击< navigator >组件实现页面跳转
  • 编程式导航
    • 调用小程序的导航API,实现页面的跳转

1.声明式导航

导航到tabBar

  • tabBar 页面指的是被配置为 tabBar 的页面
  • 在使用< navigator >组件跳转到指定的tabBar 页面时,需要指定 ur 属性和 open-type 属性,其中:
    • url 表示要跳转的页面的地址,必须以/开头
    • open-type 表示跳转的方式,必须为 switchTab

示例代码如下:

<navigator url="/pages/message/message" open-type="switchTab">导航到消息页面</navigator>

导航到非tabBar

  • 非 tabBar 页面指的是没有被配置为 tabBar 的页面
  • 在使用< navigator >组件跳转到普通的非 tabBar 页面时,则需要指定 url 属性和 open-type 属性,其中:
    • url 表示要跳转的页面的地址,必须以 / 开头
    • open-type 表示跳转的方式,必须为 navigate
  • 注意:为了简便,在导航到非 tabBar 页面时,open-type="navigate"属性可以省略

示例代码如下:

<navigator url="/pages/list/list" open-type="navigate">导航到list页面</navigator>

后退导航

  • 如果要后退到上一页面或多级页面,则需要指定 open-type 属性和 delta 属性,其中:
    • open-type 的值必须是 navigateBack,表示要进行后退导航
    • delta 的值必须是数字,表示要后退的层级
  • 注意:为了简便,如果只是后退到上一页面,则可以省略 delta 属性,因为其默认值就是 1

示例代码如下:

<navigator open-type="navigateBack" delta='1'>返回上一页</navigator>

导航传参
navigator组件的url 属性用来指定将要跳转到的页面的路径。同时,路径的后面还可以携带参数:

  • 参数与路径之间使用?分隔
  • 参数键与参数值用 =相连
  • 不同参数用 & 分隔

代码示例如下:

<navigator url="/pages/list/list?name=zhangsan&age=20">跳转到list页面</navigator>

2.编程式导航

导航到tabBar页面
调用 wx.switchTab(Obiect obiect) 方法,可以跳转到 tabBar 页面。其中 Object 参数对象的属性列表如下:
在这里插入图片描述
示例如下:

<button bindtap="gotoMessage">跳转到message页面</button>
  gotoMessage(){
    wx.switchTab({
      url: '/pages/message/message',
    })
  }

导航到非tabBar页面
调用 wx.navigateTo(Object object)方法,可以跳转到非 tabBar 的页面。其中 Object 参数对象的属性列表如下:
在这里插入图片描述
示例如下:

<button bindtap="gotoList">跳转到list页面</button>
  gotoList(){
    wx.navigateTo({
      url: '/pages/list/list',
    })
  }

后退导航
调用 wx.navigateBack(Object object) 方法,可以返回上一页面或多级页面。其中 Object 参数对象可选的属性列表如下:
在这里插入图片描述
示例如下:

<button bind:tap="gotoBack">后退</button>
  gotoBack(){
    wx.navigateBack({
      delta:1
    })
  }

导航传参

<button bind:tap="gotoList2">跳转到list页面</button>
 gotoList2(){
    wx.navigateTo({
      url: '/pages/list/list?name=zs&age=20',
    })
  }

二、页面事件

1.下拉刷新

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

  • 启用下拉刷新有两种方式:

    • 全局开启下拉刷新
      • 在app,json 的 window 节点中,将 enablePullDownRefresh 设置为 true
    • 局部开启下拉刷新
      • 在页面的json 配置文件中,将enablePullDownRefresh 设置为 true
  • 在实际开发中,推荐使用第2 种方式,为需要的页面单独开启下拉刷新的效果

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

    • backgroundColor 用来配置下拉刷新窗口的背景颜色,仅支持16进制的颜色值
    • backgroundTextStyle 用来配置下拉刷 loading 的样式,仅支持 dark 和 light
  • 在页面的.js 文件中,通过onPullDownRefresh0 函数即可监听当前页面的下拉刷新事件

例子:
例如,在页面的 wxml中有如下的 UI结构,点击按钮可以让 count 值自增+1:

<view>count值是:{{count}}</view>
<button bind:tap="addCount">+1</button>
  addCount(){
    this.setData({
      count: this.data.count + 1,
    })
  }

在触发页面的下拉刷新事件的时候,如果要把 count 的值重置为0,示例代码如下:

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      count: 0
    })
  }

当处理完下拉刷新后,下拉刷新的 loading 效果会一直显示,不会主动消失,所以需要手动隐藏下拉刷新的loading 效果。此时,调用wxstopPullDownRefresh0 可以停止当前页面的下拉刷新。示例代码如下:

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      count: 0
    })
    wx.stopPullDownRefresh()
  }

2.上拉触底

  • 上拉触底是移动端的专有名词,通过手指在屏幕上的上拉滑动操作,从而加载更多数据的行为
  • 在页面的 js 文件中,通过 onReachBottom( 函数即可监听当前页面的上拉触底事件。
  • 上拉触底距离指的是触发上拉触底事件时,滚动条距离页面底部的距离
  • 可以在全局或页面的 .json 配置文件中,通过 onReachBottomDistance 属性来配置上拉触底的距离
  • 小程席默认的触底距离是 50px,在实际开发中,可以根据自己的需求修改这个默认值。

案例:
效果:
在这里插入图片描述
实现步骤:
在这里插入图片描述
上拉触底节流处理步骤:
在这里插入图片描述

<view wx:for="{{colorList}}" wx:key="index" class="num-item" style="background-color: rgba({{item}});">{{item}}</view>
.num-item{
  border: 1rpx solid #efefef;
  border-radius: 8rpx;
  line-height: 200rpx;
  margin: 15rpx;
  text-align: center;
  text-shadow: 0rpx 0rpx 5rpx #fff;
  box-shadow: 1rpx 1rpx 6rpx #aaa;
}
data: {
    colorList: [],
    isloading: false
  },
getColors(){
    this.setData({
      isloading: true
    })
    //loading提示效果
    wx.showLoading({
      title: '数据加载中...',
    })
    wx.request({
      url: 'https://applet-base-api-t.itheima.net/api/color ',
      method: 'GET',
      success: ({data: res}) => {
        this.setData({
          colorList: [...this.data.colorList,...res.data]
        })
      },
      complete: ()=> {
        wx.hideLoading()
        this.setData({
          isloading: false
        })
      }
    })
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    if(this.data.isloading) return
    this.getColors()
  }

总结

以上就是微信小程序学习讲解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/316343.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

精确掌控并发:分布式环境下并发流量控制的设计与实现(一)

这是《百图解码支付系统设计与实现》专栏系列文章中的第&#xff08;10&#xff09;篇。 本篇主要讲清楚常用的并发流量控制方案&#xff0c;包括固定窗口、滑动窗口、漏桶、令牌桶、分布式消息中间件等&#xff0c;以及各种方案在支付系统不同场景下的应用。 在非支付场景&a…

若依实现前段后登录密码加密

若依虽然有加密解密功能&#xff0c;然后只有前端有&#xff0c;在用户点击保存密码的时候&#xff0c;会将密码保存到本地&#xff0c;但是为了防止密码泄露&#xff0c;所以在保存的时候&#xff0c;进行加密&#xff0c;在回显密码的时候进行解密显示&#xff0c;用户在登录…

上门回收小程序开发,让回收更加简单

资源回收一直是当下深受大众关注的话题&#xff0c;如何做到资源不浪费&#xff0c;成为了大众要考虑的问题。在人们环保意识的加深下&#xff0c;回收行业也是获得了大众的关注&#xff0c;逐渐形成了一个新的商业模式。 随着互联网技术的发展&#xff0c;回收行业也更加方便…

乱码问题汇总

写在前面 在工作中经常会碰到各种莫名其妙的乱码问题&#xff0c;但通过之前的学习&#xff1a;字符集&字符编码-CSDN博客 &#xff0c;可以知道乱码的根本原因就是使用和数据源编码不一样的编码解码导致。 如&#xff1a;BIG5解码GB2312编码内容&#xff0c;编解码不一致…

C++学习笔记(三十五):c++ 函数指针及lambda表达式

本节介绍c函数指针。在一些源码中经常能看到c函数指针&#xff0c;但之前一直觉着这一块比较复杂&#xff0c;就一直没去仔细研究&#xff0c;终于有时间去仔细研究这一块内容了。 c风格的函数指针 函数指针是指将一个函数赋值给一个变量的方法&#xff0c;可以将函数作为一个参…

Oracle篇—实例中和name相关参数的区别和作用

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux&#xff0c;也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&#xff0c;并且也会默默的点赞收藏加关注❣…

可以在微信群里使用midjourney,gpt4,gemini,文心一言4.0,且免费

免费使用gpt4和midjourney 免费使用 参考链接&#xff1a; https://chat.xutongbao.top/

(核心变量)全国上市公司对外开放程度+dofile+参考文献(2000-2022年)

上市公司的对外开放程度数据反映了这些公司在国际市场上的活跃度和全球化程度。这包括了它们的国际贸易参与度、跨国投资和合作、国际市场的营销和品牌推广策略&#xff0c;以及在不同国家和地区的业务布局。此外&#xff0c;这段时间内不同行业和公司的对外开放程度可能有明显…

IDEA新建SpringBoot工程时java版本只有17和21

解决方法&#xff1a;替换源 参考博客&#xff1a;https://www.kuazhi.com/post/712799571.html

VirtualBox安装linuxmint-21.2虚拟机并配置网络

VirtualBox安装linuxmint-21.2虚拟机并配置网络 适用于在VirtualBox平台上安装linuxmint-21.2虚拟机。 1. 安装准备 1.1 安装平台 Windows 11 1.2. 软件信息 软件名称软件版本安装路径Oracle VM VirtualBoxVirtualBox-7.0.12-159484D:\softwareCentOS7CentOS-7.9.2009E:\…

4点优势,昂首资本使用浮动差价不使用固定差价的原因

在交易中&#xff0c;很多投资者和昂首资本一样&#xff0c;会使用浮动点差而不使用固定点差&#xff0c;那是因为投资者和昂首资本一样认为&#xff0c;使用浮动差价交易会比使用固定价差交易更有优势。 首先在大部分交易时段&#xff0c;价差缩小。正如投资者和昂首资本所知…

亚马逊怎么防止店铺关联?

亚马逊&#xff08;Amazon&#xff09;为了确保公平竞争和防止不当行为&#xff0c;采取了一些措施来防止店铺关联&#xff0c;即通过不同的方式将多个店铺相关联&#xff0c;以获取不正当的竞争优势。以下是一些亚马逊防止店铺关联的主要措施&#xff1a; 同一经营者规定&…

自己动手写编译器:自顶向下的自动状态机

本节我们介绍编译原理中一种新的数据结构叫自顶向下的自动状态机。前面我们在做词法解析时接触了大量自动状态机&#xff0c;他们存在一个缺陷那就是无法对要识别的字符串进行计数&#xff0c;因此当我们要判断括号对是否匹配时&#xff0c;使用在词法解析的状态机就处理不了&a…

世界人口数据分析与探索

文章目录 世界人口数据集介绍数据集 1&#xff1a;世界国家统计数据&#xff1a;数据集 2&#xff1a;世界人口详细信息&#xff08;2023 年&#xff09;&#xff1a;数据集 3&#xff1a;按年份划分的世界人口&#xff08;1950-2023&#xff09;&#xff1a; 数据分析导入必要…

【金猿CIO展】步长制药信息化管理与建设中心总经理束炼:IT部门既要懂技术,也要懂业务...

‍ 束炼 本文由步长制药信息化管理与建设中心总经理束炼撰写并投递参与“数据猿年度金猿策划活动——2023大数据产业年度优秀CIO榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 随着数字化转型的浪潮席卷各行各业&#xff0c;中国数字经济已进入快速发展阶…

Godot之StringName解析

类描述 在Godot中&#xff0c;StringName是唯一字符串的内置类型。 StringName 是不可变的字符串&#xff0c;用于唯一名称的通用表示&#xff08;也叫“字符串内嵌”&#xff09;。值相同的两个 StringName 是同一个对象。进行比较时比普通 String 要快很多。 对于需要 Str…

【密码学】python密码学库pycryptodome

记录了一本几乎是10年前的书&#xff08;python绝技–用python成为顶级黑客&#xff09;中过时的内容 p20 UNIX口令破解机 里面提到了python标准库中自带的crypt库&#xff0c;经验证Python 3.12.1中并没有这个自带的库&#xff0c;密码学相关的库目前&#xff08;2024.1.12&a…

QT周四作业

题目&#xff1a; 代码&#xff1a; widget.cpp #include "widget.h" #include "ui_widget.h" #include <QDebug> Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);ui->lineEditName->setPlac…

JAVA数组以及小练习

目录 数组的概述和静态初始化 数组的地址值和元素访问 数组的遍历 数组的动态初始化 数组练习 数组的概述和静态初始化 package 数组;public class array1 {public static void main(String[] args){//格式//静态初始化//数据类型 [] 数组名 new 数组类型[]{元素1&#xf…