【大白话学习】UniApp 微信小程序与APP应用 开发零基础入门教程(五)---上拉加载下拉刷新与删除

当内容比较多时,我们需要上拉显示更多内容,下拉刷新显示最新内容,本节就实现这个功能。

首先,要设置允许 list.vue页面有下拉功能,打开page.json,在pages 中,找到 list所在那一行,修改为

"path": "pages/list/list",
"style": {
"navigationBarTitleText": "看日记",
"enablePullDownRefresh": true
}

再在 pages[

....],

最后面添加一行

"onReachBottomDistance": 150, //距离底部150上滑有效,注意,号

回到 list.vue页面,我们在 onload()事件的下面添加以下代码:

        ,onPullDownRefresh: function() {
			console.log("下拉");
			page = 1;
			this.noteList = [];
			this.goLink();
		},
		onReachBottom: function() {
			console.log("上拉");
			this.goLink();
		}

然后保存,运行看一下效果,如果代码正确,就会看到效果,可以事先多录几条内容。

我们现在从登陆开始 ,依次执行 写日记,看日记,会发现,写完日记跳到了看日记界面,再次点击写日记,发布日记后,虽然跳回了 看日记界面,但内容没有刷新 ,只有手工下拉刷新才能看到自己刚刚写内容,显示,我们希望是每次写完就能看到自己写的新日记,怎么解决这个问题呢?

还记得我们在 index.vue中,发布成功后写过一段代码:

uni.setStorageSync("pop", 1); //给刷新标记赋值

这时就要用到这个了。

找到 onload ,在它的前面加一段代码:

onShow() {
			let pop = uni.getStorageSync('pop') //取得刷新标记
			if (pop) {    //如果标记为1,就刷新页面
				page = 1;
				this.noteList = [];
				this.goLink();

			}
			uni.removeStorageSync('pop') //移除刷新标记
		},

这样就实现了写完后立即刷新。

这里用到了 onShow(),  它表示页面显示,执行的顺序晚于onload,onload是指页面第一次被显示时执行的功能,一般只执行一次,而 onShow,只要显示就执行,没有次数限制。

接下来,我们增加修改与删除操作的功能。
<text :data-id="item.id" :data-index="index" @tap="editOne">修改</text>
<text :data-id="item.id"     :data-index="index" @tap="removeOne">删除</text>

在HbuilderX中,@click与@tap都是点击时触发事件,不同的是:

  1. @click是组件被点击时触发,会有约300ms的延迟;
  2. @tap是手指触摸离开时触发,没有300ms的延迟,编译到小程序端,@click会被转换成@tap;

我们设置点击后,执行 removeOne方法,所以,在methods里,我们再增加这个方法

editOne: function(e) {
				var noteID = e.currentTarget.dataset.id;   //取得当前日记在数据库里的id
				var index = e.currentTarget.dataset.index; //到得当前日记在本页面中的位置
				uni.navigateTo({   //跳转到编辑界面
					url: "../edit/edit?ID=" + noteID + "&index=" + index
				});
			},
removeOne: function(e) {
				var noteID = e.currentTarget.dataset.id;
				var index = e.currentTarget.dataset.index;
				uni.showModal({ //删除确认提示
					title: "提示" + noteID,
				    content: "确定要删除吗?",
					success: function(e) {
						if (e.confirm == true) {
							uni.request({
								url: _self.apiServer + 'del',
								method: 'POST',
								header: {'content-type': "application/x-www-form-urlencoded"}, 
								data: {
									uid: loginUID,
									ID: noteID
								},
								success: function(res) {
									console.log(res);
									if (res.data.result == 'ok') {
										uni.showToast({title: "已删除",icon: "none"});
										_self.noteList.splice(index, 1); //从列表中移除
									} else {
										uni.showToast({title: "删除失败",icon: "none"});
									}
								}
							});
						}
					},
				});
			}

在编辑功能 editOne中,我们的跳转用的是 uni.navigateTo,这个表示跳转到指页面,可以带点慰问品(参数)过去

下一节具体学习怎么编辑日记


           

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
卷积神经网络(CNN)是一种常用于图像处理和模式识别的深度学习模型。它的设计灵感来自于生物学中视觉皮层的神经元结构。为了用通俗的语言解释CNN,我们可以用以下方式来理解它: 假设你要识别一张猫的图片。首先,你的大脑会将这张图片的像素点转化成一系列数字,并且记录下它们的位置和颜色。然后,大脑会将这些数字输入到“卷积层”中。 在卷积层中,会有很多个“过滤器”。这些过滤器可以视为一双眼睛,它们通过抓取图片的不同特征来帮助你识别物体。每个过滤器都在图片上滑动并计算一个“特征图”,这个特征图描述了所检测到的特定特征。例如,一个过滤器可以检测到猫的边缘,另一个可以检测到猫的颜色等等。当所有过滤器完成计算后,就会得到一些不同的特征图。 在“池化层”中,每个特征图都会被压缩,去除一些不重要的信息。这样可以减少需要计算的数据量,并且使得特征更加鲁棒和不变形。 最后,在全连接层中,所有的特征图都被连接起来,形成一个巨大的向量。接下来,这个向量会通过一些神经元节点,最终输出识别结果,也就是“这是一张猫的图片”。 CNN的一个重要特点是参数共享,这意味着每个过滤器会在整个图片上进行计算,而不仅仅是某个局部区域。这样可以减少需要计算的参数量,提高训练速度和模型的泛化能力。 总结一下,CNN通过卷积层来提取图像的特征,并通过池化层降低特征的维度。最后,通过全连接层将所有特征连接起来并输出结果。这种结构使得CNN非常适合于图像分类和识别任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恰好

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值