1.界面交互-loading提示框

loading提示框用于增加用户体验, 对应的API有两个:

  1. wx.showLoading()显示loading提示框
  2. wx.hideLoading()关闭loading提示框
Page({getData () {//显示loading提示框wx.showLoading({//提示内容不会自动换行,多出来的内容会被隐藏title: '数据加载中...',//展示透明蒙层,防止触摸穿透mask: true,}),wx.request({// 接口地址url: 'url',//接口方式method: 'GET',//请求参数data: {},//请求头header: {},// API调用成功以后,执行的回调,res是服务器响应的数据success: (res) => {console.log(res);},// API调用失败以后,执行的回调fail: (err) => {console.log(err);},// API不管调用成功还是失败,都会执行执行的回调cpmplete: (res) => {//隐藏效果,和展示配套使用wx.hideLoading()}})}
})
2.界面交互-模态对话框-消息提示框
  1. wx.showModal() :模态对话框,常用于询问用户是否执行一些操作。例如:询问用户是否退出登录,是否删除商品
  2. wx.showToast() :消息提示框,根据用户的某些操作来告知操作的结果。例如:退出成功给用户提示,提示删除成功等。
Page({async delHandler () {//shouModal显示模块对话框const res = await wx.showModal({title: '提示',content: '是否删除该商品?'})if (confirm) {wx.showToast({title: '删除成功',icon: none,duration: 2000})}else{wx.showToast({title: '取消删除',icon: error,duration: 2000})}}
}) 
3.本地存储

使用API将数据存储在用户的设备上,以便小程序运行时和下次启动时快速地读取这些数据
在这里插入图片描述

注意:对象类型的数据,可以直接进行存储获取,无需使用JSON.stringify()、JSON.parse()转换
同步API

Page({//将数据存储到本地setStorage (){wx.setStorageSync('num', 1)wx.setStorageSync( 'obj', {name: 'tom', age: 10 })},//获取存储到本地的数据getStorage (){const num = wx.getStorageSync('num')const obj = wx.getStorageSync('obj')console.log(num)console.log(obj);},//删除本地存储的数据removeStorage () {wx.removeStorageSync('num')},//清空本地存储的全部数据clearStorage () {wx.clearStorageSync()}})

异步API

Page({//将数据存储到本地setStorage (){//异步wx.setStorage({key: 'num',data: 1}),wx.setStorage({key: 'obj',data: { name: 'jerry', age:18 }})},//获取存储到本地的数据getStorage (){//异步const { data } = await wx.getStorage({key: 'obj'})console.log(data);},//删除本地存储的数据removeStorage () {//异步wx.removeStorage({key: 'num'})},//清空本地存储的全部数据clearStorage () {//异步wx.clearStorage()}})
4.路由与通信

实现页面跳转的方式

  1. 声明式导航:navigator组件
  2. 编程式导航:使用小程序提供的API
    在这里插入图片描述
    路径后可以带参数,参数与路径之间使用?分隔,参数键与参数值用 = 相连,不同参数用 & 分隔,例如: path?key=value&key2=value2
    参数需要在跳转到的页面的 onLoad 钩子函数中通过形参进行接收

wx.switchTab()方法路径后面不能带参数

5.页面处理函数-上拉加载

上拉加载:当用户滑动页面到底部时,会自动加载更多的内容,以便用户继续浏览
实现方式:

  1. 在app.json或者page.json中配置距离页面底部的距离:onReachBottomDistance; 默认 50px
  2. 在页面.js中定义onReachBottomDistance事件监听用户上拉加载
   "onReachBottomDistance": 100
Page({data: {numList: [1, 2, 3, 4]},// 监听用户上拉加载onReachBottom () {// console.log('监听用户上拉加载');const addList = this.data.numList[this.data.numList.length - 1]const newList = [addList + 1, addList + 2, addList + 3]this.setData({numList : [...this.data.numList, ...newList]})}
})
6.页面处理函数-下拉刷新

下拉刷新:当用户下拉页面时,页面会自动刷新,以便用户获取最新内容。
实现方式:

  1. 在app.json或者page.json中开启允许下拉,同时可以配置窗口、loading样式等
  2. 在页面.js中定义onPullDownRefresh事件监听用户下拉刷新
{"usingComponents": {},"onReachBottomDistance": 100,"enablePullDownRefresh": true,"backgroundColor": "#efefef","backgroundTextStyle":"light"
}
onPullDownRefresh () {this.setData({newList: [1, 2, 3]})//为了使完成下拉后loading效果回弹if(this.data.numList.length === 3) {wx.stopPullDownRefresh()}}
7.增强 scroll-view

使用scroll-view实现上拉加载更多和下拉刷新功能

<scroll-view scroll-y class="scroll-y"lower-threshold="100"bindscrolltolower="getMore"enable-back-to-top="true"refresher-enabledrefresher-default-style="black"refresher-background="#f7f7f8"bindrefresherrefresh="refreshHnadler"refresher-triggered="{{isTriggered}}"
><view wx:for="{{ numList }}" wx:key="*this">{{ item }}</view>
</scroll-view>
8.自定义组件-创建和注册组件

小程序目前已经支持组件化开发,可以将页面中的功能模块抽取成自定义组件,以便在不同的页面中重复使用;也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护。

开发中常见的组件有两种:

  1. 公共组件:将页面内的功能模块抽取成自定义组件,以便在不同的页面中重复使用
  2. 页面组件:将复杂的页面拆分成多个低耦合的模块,有助于代码维护

建议一个组件一个文件夹

公共组件:
放在项目根目录的components文件夹中
公共组件进行全局注册:在app.json文件中配置usingComponents进行注册,注册后可以在任意页面使用
页面组件:
放在对应页面的目录下
页面组件进行局部注册:在页面的json中配置usingComponents进行注册,注册后只能在当前页面使用

在usingComponents进行组件注册时,需要提供自定义组件的组件名和自定义组件文件路径
在将组件注册好以后,直接将自定义组件的组件名当成组件标签名使用即可。

"usingComponents": {"custom-checkbox" : "./components/custom-checkbox/custom-checkbox"}
9.组件的数据以及方法

组件的数据以及方法需要在组件.js的Component方法中进行定义,Component创建自定义组件

  1. data:定义组件的内部数据
  2. methods:在组件中事件处理程序需要写到methods中才行
10.组件的属性

控制文本信息以及文本显示的位置
Properties是指组件的对外属性,主要用来接收组件使用者传递给组件内部的数据,和data一同用于组件的模板渲染

<custom-checkbox label="我已阅读并同意 用户协议和隐私协议 " position="right" />

在这里插入图片描述

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

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

相关文章

SqueezeBERT:计算机视觉能为自然语言处理在高效神经网络方面带来哪些启示?

摘要 人类每天阅读和撰写数千亿条消息。得益于大规模数据集、高性能计算系统和更优的神经网络模型&#xff0c;自然语言处理&#xff08;NLP&#xff09;技术在理解、校对和组织这些消息方面取得了显著进展。因此&#xff0c;将 NLP 部署于各类应用中&#xff0c;以帮助网页用…

Springboot开发常见注解一览

注解用法常用参数Configuration用于标记类为配置类&#xff0c;其中通过Bean方法定义Spring管理的组件。它替代XML配置&#xff0c;用Java代码声明对象创建逻辑&#xff0c;并确保单例等容器特性生效。相当于给Spring提供一个“制造说明书”来组装应用部件RestControllerRestCo…

Maven高级——分模块设计与开发

目录 ​编辑 分模块设计与开发 拆分策略 继承与聚合 版本锁定 聚合 作用 实现 Maven中继承与聚合的联系与区别&#xff1f; 联系 区别 私服 分模块设计与开发 将一个大项目拆分成若干个子模块&#xff0c;方便项目的管理维护&#xff0c;扩展&#xff0c;也方便模…

线程池的七个参数设计源于对高并发场景下资源管理、系统稳定性与性能平衡的深刻洞察

⚙️ 一、核心参数设计目标与解决的问题 参数设计目标解决的核心问题典型取值策略corePoolSize&#xff08;核心线程数&#xff09;维持常备线程资源避免频繁创建/销毁线程的开销&#xff0c;提高响应速度CPU密集型&#xff1a;N_cpu 1 IO密集型&#xff1a;2 N_cpu maximum…

少样本学习在计算机视觉中的应用:原理、挑战与最新突破

在深度学习的黄金时代&#xff0c;大量标注数据似乎成了算法性能的前提。然而在许多现实场景中&#xff0c;如医疗图像分析、工业缺陷检测、遥感识别、甚至个性化视觉服务中&#xff0c;高质量、成规模的标注数据往往昂贵、稀缺&#xff0c;甚至难以获得。这种场景正是**少样本…

github在线图床

github做的图床&#xff0c;原理是利用github API实现的在线上传&#xff0c;就一个页面&#xff0c;css和js都是集成在页面&#xff0c;相关信息保存在浏览器缓存中&#xff0c;配置一下即可使用 效果演示&#xff1a; github在线图床 打开网站填写下列信息 github用户名&a…

css-多条记录,自动换行与自动并行布局及gap兼容

实现这样的内容布局&#xff0c;当一段文案长度超过当前行的时候自动占据一行&#xff0c;其他相近的不超过一行自动放在一行间隔隔开 关键实现原理&#xff1a; 弹性布局容器&#xff1a; .history-container {display: flex;flex-wrap: wrap;gap: 12px; }使用flex-wrap: wr…

Redis 哨兵模式部署--docker版本

redis sentinel 简介 Redis Sentinel 是 Redis 官方提供的高可用&#xff08;HA&#xff09;解决方案&#xff0c;用于监控主从架构中的故障并自动完成故障转移。当主节点&#xff08;Master&#xff09;宕机时&#xff0c;Sentinel 能自动选举新的主节点&#xff0c;通知从节…

Java线程中的守护线程

Java线程中的守护线程在Java中&#xff0c;守护线程&#xff08;Daemon Thread&#xff09;是一种特殊类型的线程&#xff0c;它在后台运行&#xff0c;主要用于支持其他线程&#xff08;如用户线程&#xff09;的工作。守护线程不会阻止JVM&#xff08;Java虚拟机&#xff09;…

Flink-状态恢复-isRestore分析

isRestored 方法返回值依赖 restoredCheckpointId 是否为空&#xff1a;restoredCheckpointId 在算子状态句柄&#xff08;StreamOperatorStateHandler&#xff09;中从 StreamOperatorStateContext 获取并赋值给 StateInitializationContext&#xff08;该 context 就是 initi…

rk3128 emmc显示剩余容量为0

机器emmc 容量显示异常&#xff0c;显示剩余容量为0&#xff0c;这时候做了一个让 系统不检测GPP分区部分的操作&#xff0c;此问题才得以解决&#xff0c;如下&#xff1a; system/vold/DirectVolume.cpp -33,6 33,8 #include "VolumeManager.h"#include "Re…

WebAssembly国际化多语种支持

icu linux数据裁剪 先linux编译出所有的工具 mkdir build && cd build ../configure --prefix=$(pwd)/build_wasm/install --enable-static --disable-shared --with-data-packaging=static --enable-tools=yes --enable-extras=yes --e…

Ubuntu 安装 etcd 与 etcd-cpp-apiv3

目录 安装 etcd 安装 etcd-cpp-apiv3 安装 etcd sudo apt update sudo apt install etcd-server sudo apt install -y etcd-client 在 /etc/default/etcd 配置文件中配置&#xff0c;下面示例是单个服务器内进程之间交换信息且只有一个etcd节点。 #节点名称&#xff0c;默认为…

Spring Boot 集成 GeoTools 详解

目录 一、概述二、集成优势三、集成步骤四、使用场景五、案例&#xff1a;周边设施查询系统六、注意事项七、总结 一、概述 什么是 Spring Boot&#xff1f; Spring Boot 是由 Pivotal 团队开发的基于 Spring 框架的快速开发工具&#xff0c;它通过自动配置、起步依赖等特性简…

基础知识:mysql-connector-j依赖

mysql-connector-j 是 MySQL 官方提供的 Java 数据库连接驱动&#xff08;JDBC Driver&#xff09;&#xff0c;用于在 Java 应用程序中连接和操作 MySQL 数据库。它是 MySQL 8.0 版本之后的标准驱动名称&#xff0c;替代了旧的 mysql-connector-java。 一、新旧版本对比 驱动…

vscode remote-ssh 拓展免密访问 linux虚拟机

前置步骤&#xff0c;在linux安装好ssh并且win可以使用密码登录linux sudo apt install openssh-server -y 在win上检查密钥是否存在 检查公钥和私钥cat ~/.ssh/id_rsa.pubcat ~/.ssh/id_rsa 如果不存在&#xff0c;重新生成 ssh-keygen -t rsa -b 4096 重新执行 cat ~/.ssh/…

动手学深度学习-学习笔记【二】(基础知识)

文章目录 1、概述2、课程学习2.1、深度学习介绍2.2、安装2.3、数据操作2.4、数据预处理2.5、线性代数2.6、微积分2.7、自动微分2.8、概率2.8.1、基本概率论2.8.2、处理多个随机变量2.8.3、期望和方差 2.9、查阅文档 1、概述 本篇博客用来记录我学习深度学习的学习笔记&#xf…

瑞盟MS4554N/MS4554N1双向电平转换器重新定义混合电压系统连接

在电子设备的“心脏”——电路系统里&#xff0c;不同功能模块常因性能需求差异&#xff0c;采用差异化的供电电压&#xff1a;传感器用1.8V低功耗运行&#xff0c;主控芯片选3.3V高效处理&#xff0c;传统接口保留5V稳定传输……当这些“电压孤岛”需要互联时&#xff0c;一个…

二叉树题解——验证二叉搜索树【LeetCode】后序遍历

98. 验证二叉搜索树 一、算法逻辑&#xff08;逐步通顺讲解每一步思路&#xff09; 这段算法使用了一种递归的思路&#xff1a; 每个节点返回它所在子树的 最小值和最大值&#xff0c;并在返回的过程中检查 BST 的合法性。 ✅ 1️⃣ 定义递归函数 dfs(node)&#xff0c;其含…

Flink-Source算子点位提交问题(Earliest)

背景 最近在做 Flink 任务数据源切换时遇到 offset 消费问题&#xff0c;遂写篇文章记录下来。 切换时只修改了 source 算子的 topic&#xff0c;uid 等其他信息保持不变&#xff1a; 发布时&#xff0c;发现算子的消费者点位重置为earliest&#xff0c;导致消息积压。消息积…