微信小程序开发(实战案例):本地生活 - 列表页面开发(动态渲染处理)、节流防抖(节流阀应用)

本文主要是介绍微信小程序开发(实战案例):本地生活 - 列表页面开发(动态渲染处理)、节流防抖(节流阀应用),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 本地生活 - 列表页面开发
      • 一、将九宫格分类换成navigator组件
      • 二、动态设置商品列表页的 title
      • 三、动态渲染商品列表页面
      • 四、上拉触底加载数据
      • 五、添加Loading加载效果
      • 六、数据加载节流防抖处理

本地生活 - 列表页面开发

在这里插入图片描述

导入我们上次写的 本地生活 - 首页开发的项目

  • 运行起来后我们先创建一个 商品列表页面

在这里插入图片描述

一、将九宫格分类换成navigator组件

<!-- 九宫格区域 -->
<view class="grid-list"><navigator class="grid-item" wx:for="{{gridList}}" wx:key="id" url="/pages/shoplist/shoplist?id={{ item.id }}&name={{ item.name }}"><image src="{{item.icon}}"></image><text>{{item.name}}</text></navigator>
</view>
  • 这一步是为了实现点击调转到指定的页面! 也就是 shoplist 页面!

二、动态设置商品列表页的 title

第一步:创建一个动态的 title 变量

	 * 页面的初始数据*/data: {// title 默认为空titleName: ""},

第二步:在 商品页面加载的时候动态的获取和设置 title 变量

	/*** 生命周期函数--监听页面加载   options是导航参数对象*/onLoad(options) {// 页面一加载就设置 title 动态变量this.setData({titleName: options.name})},
  • 这里 我们将 传递过来的参数对象中的 name (商品分类名字)设置给我们data数据对象中的动态 title 变量

第三步: 调用 api 动态设置页面标题

	/*** 生命周期函数--监听页面初次渲染完成*/onReady() {// 页面架子渲染完毕,触发的生命周期函数wx.setNavigationBarTitle({// 访问 动态的 titletitle: this.data.titleName})},
  • 这样就能实现根据我们点击的商品进行跳转,同时动态的渲染 title

在这里插入图片描述

三、动态渲染商品列表页面

在这里插入图片描述

代码示例:

onLoad(options) {// 页面一加载就 动态获取参数this.setData({id: options.id,titleName: options.name})// 商品数据请求this.getShopData()},// 商品请求方法getShopData() {// 发送网络请求 这里要求动态路径传递 idwx.request({url: `https://applet-base-api-t.itheima.net/categories/${this.data.id}/shops`,method: 'GET',data: {// 请求第几页的数据_page: this.data.page,// 每页请求几条数据_limit: this.data.pageSize},success: (successResult) => {console.log(successResult)this.setData({// 将获取到的商品信息存到 商品数组中shopList: [...this.data.shopList, ...successResult.data],// 这里是获取商品的总数,因为参数名有横线,所以这里用数组包字符串自动解析,并且转为数字类型total: successResult.header['X-Total-Count'] - 0})}})},

成功后处理数据
在这里插入图片描述


四、上拉触底加载数据

  • 通过手指向上滑动进行加载数据
	/*** 页面上拉触底事件的处理函数*/onReachBottom() {// 如果节流阀请求未结束,则不允许在此重复发送请求if (this.data.isLoading) returnthis.getShopData();},

五、添加Loading加载效果

	// 商品请求方法getShopData() {this.setData({isLoading: true})// 加载 Loadingwx.showLoading({title: '玩命加载中...',})// 发送网络请求 这里要求动态路径传递 idwx.request({url: `https://applet-base-api-t.itheima.net/categories/${this.data.query.id}/shops`,method: 'GET',data: {// 请求第几页的数据_page: this.data.page,// 每页请求几条数据_limit: this.data.pageSize},success: (successResult) => {console.log(successResult)this.setData({// 将获取到的商品信息存到 商品数组中shopList: [...this.data.shopList, ...successResult.data],// 这里是获取商品的总数,因为参数名有横线,所以这里用数组包字符串自动解析,并且转为数字类型total: successResult.header['X-Total-Count'] - 0})},complete: () => {// 数据请求完毕,将节流阀 改为 false 表示可以加载数据了this.setData({isLoading: false})// 请求结束后,关闭加载效果wx.hideLoading()}})},

在这里插入图片描述

六、数据加载节流防抖处理

		// 节流阀开关isLoading: false// 在请求数据的时候,将开关进行修改// 商品请求方法getShopData() {this.setData({isLoading: true})// 数据请求完毕,在关闭节流阀
// 数据请求完毕,将节流阀 改为 false 表示可以加载数据了this.setData({isLoading: false})// 通过节流阀判断是否发送数据请求onReachBottom() {// 如果节流阀请求未结束,则不允许在此重复发送请求if (this.data.isLoading) returnthis.getShopData();},
  • 最终,简单的商品列表页动态数据渲染就结束了
    在这里插入图片描述

这篇关于微信小程序开发(实战案例):本地生活 - 列表页面开发(动态渲染处理)、节流防抖(节流阀应用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/733512

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于