微信小程序快速入门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) returnthis.getColors()}

总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

128基于matlab的粒子群优化算法寻找多元函数的最大值

基于matlab的粒子群优化算法寻找多元函数的最大值&#xff0c;可定义多元函数&#xff0c;变量区间范围&#xff0c;输出最大值条件下的变量值。程序已调通&#xff0c;可直接运行。 128matlab多元函数极值 (xiaohongshu.com)

Spring Boot 接入 KMS 托管中间件密码第三方接口密钥

1. 需求 Nacos中关于中间件的密码&#xff0c;还有第三方API的密钥等信息&#xff0c;都是明文存储&#xff0c;不符合系统安全要求。现需对这些信息进行加密处理&#xff0c;Nacos只存储密文&#xff0c;并在服务启动时&#xff0c;调用云厂商的KMS接口进行解密&#xff0c;将…

二分搜索边界问题的简单结论

引言 二分搜索是一个说简单也很简单&#xff08;代码很固定&#xff0c;也没几行&#xff09;&#xff0c;说难也很难&#xff08;边界问题可能会让人想不太清楚&#xff09;。 事实上&#xff0c;边界问题也是是算法题中普遍存在的难点。 这篇文章讲两个简单的结论&#xff0…

python 文件夹中 __init__.py

common文件夹下有&#xff1a;project&#xff0c;__init__.py&#xff0c;common1.py project文件夹内有&#xff1a;__init__.py&#xff0c;p.py common文件夹里&#xff0c;project文件夹 各放了一个 __init__.py 这样就可以在p.py内用from导入common1.py内的代码 # p…

数据挖掘实战-基于机器学习的电商文本分类模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

互联网资讯精选:科技爱好者周刊 | 开源日报 No.145

ruanyf/weekly Stars: 37.4k License: NOASSERTION 记录每周值得分享的科技内容&#xff0c;提供大量就业信息。欢迎投稿、推荐或自荐文章/软件/资源&#xff0c;并可通过多种方式进行搜索。 提供丰富的科技内容每周更新可以提交工作/实习岗位支持投稿和推荐功能 GyulyVGC/…

20240106----重返学习-在VMware里给centos7设置静态IP地址

在VMware里给centos7设置静态IP地址 场景 学习nginx中&#xff0c;想要设置静态IP地址&#xff0c;以便让win10主环境中的Xshell里能够连接到VMware中的CentOS7上&#xff0c;进而可以在Xshell里进行操作。可以做到如复制粘贴之类的&#xff0c;而不是在虚拟机中的默认终端上…

第一个 OpenGL 程序:旋转的立方体(VS2022 / MFC)

文章目录 OpenGL API开发环境在 MFC 中使用 OpenGL初始化 OpenGL绘制图形重置视口大小 创建 MFC 对话框项目添加 OpenGL 头文件和库文件初始化 OpenGL画一个正方形OpenGL 坐标系改变默认颜色 重置视口大小绘制立方体使用箭头按键旋转立方体深度测试添加纹理应用纹理换一个纹理 …

初识 Elasticsearch 应用知识,一文读懂 Elasticsearch 知识文集(1)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

LLaMA-Factory添加adalora

感谢https://github.com/tsingcoo/LLaMA-Efficient-Tuning/commit/f3a532f56b4aa7d4200f24d93fade4b2c9042736和https://github.com/huggingface/peft/issues/432的帮助。 在LLaMA-Factory中添加adalora 1. 修改src/llmtuner/hparams/finetuning_args.py代码 在FinetuningArg…

GB28181视频汇聚平台EasyCVR级联后,部分通道视频无法播放是什么原因?

GB28181协议智慧安防平台EasyCVR是基于各种IP流媒体协议传输的视频汇聚和融合管理平台。视频流媒体服务器EasyCVR采用了开放式的网络结构&#xff0c;支持高清视频的接入和传输、分发&#xff0c;平台提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制…

Python--闭包

在 Python 中&#xff0c;闭包是一种函数&#xff0c;它能够记住并访问其所在词法作用域&#xff08;即定义该函数的作用域&#xff09;中的变量&#xff0c;即使该函数在其词法作用域之外被调用。要形成闭包&#xff0c;需要满足以下几个条件&#xff1a; 必须有一个内嵌函数&…