五、书架开发--3.弹出框功能开发、离线缓存功能开发

实现弹出框真实业务逻辑

私密阅读tab业务逻辑

1、根据点击的tab不同,从而展示出不同的popup弹窗

每个tab中都有自己的index,点击的时候获取这个index,就可以知道当前点击的是哪个tab,然后用switch-case来根据不同的index展示不同的popup弹窗。

首先在点击tab事件中,有图书被选中了才行,所以没有图书被选中就return,然后需要根据你选中的是哪个tab从而展示不同的弹窗,所以我们需要通过switch-case如下根据tab的index不同从而展示不同的东西

我们先做点击tab的逻辑,点击tab1就展示tab1的弹窗,我们把展示tab1弹窗封装为一个方法,该方法中就是我们之前做的调用create-api的this.popup()然后往里传标题和按钮文字这些;然后开启按钮我们需要做开启私密阅读的相关逻辑我们先封装为setPrivate()方法,取消按钮我们就关闭弹窗就好了所以调用hidePopup()

2、私密阅读中点击开启按钮的逻辑实现

点击(关闭)私密阅读这个tab,出现弹框后点击里面的开启按钮,从而需要展示的交互逻辑:

开启私密阅读的逻辑其实就是,看我们当前选中的图书们中每个图书的private字段(private为true表明这本书是私密阅读状态,为false即不是私密阅读状态)。

如果都是私密阅读状态,那我们tab中展示的文本应该是关闭私密阅读,然后我们点击关闭私密阅读中的开启按钮,则是要关闭私密阅读,所以被选中的书们会变成不是私密阅读状态的图书,所以我们要把这些被选中的图书们的private字段都置为false,最后展示toast的提示文本;

如果其中有书不是私密阅读状态,那我们tab中展示的文本应该是开启私密阅读,然后我们点击私密阅读中的开启按钮,则是要开启私密阅读,所以被选中的书们会变成私密阅读状态的图书,所以我们要把这些被选中的图书们的private字段都置为true,最后展示toast的提示文本

在做真实项目的时候,这个private一旦置为false以后我们还要调用一个接口回传到数据库里面,然后后端给我们做一些处理。

这里分为以下几点:

第一点:需要判断被选中的图书们的私密阅读状态

我们设计一个计算属性isPrivate(){}来计算被选中的图书们,循环遍历用every判断。如果图书们都是私密阅读状态,那么就返回true;如果图书们中但凡有一个不是私密阅读状态,那么就返回false

第二点:需要定义一个isPrivate变量来记录被选中图书们此时的私密阅读状态应该是什么

因为很多时候要知道这些被选中图书们的私密状态从而做一些逻辑判断,我们定义一个变量记录它就方便使用,不然得去一遍遍循环判断被选中图书们的状态不方便。

定义一个变量叫isPrivate,因为这个变量随时会变所以用let。然后根据前面的计算属性isPrivate()判断,如果计算属性中返回的是true则说明图书们都是私密阅读状态,后面我们点击的就是开启私密阅读,所以就把定义的这个变量isPrivate置为false(表示不需要开启私密阅读此时是私密阅读状态);如果计算属性中返回的是false则说明图书们有的不是私密阅读状态,后面我们点击的就是开启私密阅读,所以就把定义的这个变量isPrivate置为true(表示需要开启私密阅读此时不是私密阅读状态)

第三点:修改被选中的图书们的private字段

去遍历被选中的图书们,将isPrivate变量赋值给图书的private字段;然后你修改了书架数据,所以我们修改后把书架数据缓存到localstore中

第四点:tab中展示'私密阅读'还是'关闭私密阅读'

根据isPrivate变量判断,如果是true则表示当前被选中的图书们都是私密阅读状态,那么tab中就应该展示'关闭私密阅读';如果是false则表示当前选中的图书们有的是非私密阅读状态,那么tab中就应该展示'私密阅读'

第五点:点击popup弹窗按钮后弹出不同文本的toast弹窗

根据isPrivate变量判断,如果是true则表示当前被选中的图书们都是私密阅读状态,那么tab中是关闭私密阅读,所以点击popup弹框的开启按钮后,应该是展示'关闭私密阅读成功'的提示;如果是false则表示当前被选中的图书们有的是非私密阅读状态,那么tab中是私密阅读,所以点击popup弹框的开启按钮后,应该是展示'开启私密阅读成功'的提示;

如下,点击第五本书,当前这本书是非私密阅读状态,然后tab正确展示私密阅读,然后点击私密阅读,点击开启(即要把这本书设置为私密阅读),然后就可以看到这本书的private字段为true即为私密阅读状态了,而且toast展示已开启私密阅读

再次点击这本书,此时这本书是私密阅读状态,此时tab就显示关闭私密阅读,点击开启即展示关闭私密阅读成功啦

3、缓存弹出框实现思路也类似

1. 设置根据点击的tab2展示缓存弹窗

2. tab2的popup弹窗的内容

3. 定义一个计算属性判断被选中图书们是否全是缓存状态

4. 点击弹窗开启/删除按钮要实现的逻辑、toast弹框提示

5. tab栏文字的切换

上面状态的切换完成了,但是我们还要完成实际的下载,就先留着等一下再做

4、加入/移除书架

也是同理

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

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

相关文章

SQL语言

一、DDL数据库定义语言 1、登录mySQL mysql -u"用户名" -p"密码" -h"登录地址 -h:默认为本机 示例: 2、查看当前存在的数据库 show databases; 示例: 3、创建数据库database create…

泰坦尼克号幸存者预测

泰坦尼克号幸存者预测 1、特征工程概述2、数据预处理3、特征选择与提取4、建模与预测 1、特征工程概述 在上篇 泰坦尼克号幸存者数据分析 中,我们对泰坦尼克号的幸存者做了数据分析,通过性别、年龄、船舱等级等不同维度对幸存者进行了分类统计&#xff0…

Leetcode算法训练日记 | day25

一、组合总和Ⅲ 1.题目 Leetcode:第 216 题 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺…

2023年MathorCup数学建模D题航空安全风险分析和飞行技术评估问题解题全过程文档加程序

2023年第十三届MathorCup高校数学建模挑战赛 D题 航空安全风险分析和飞行技术评估问题 原题再现 飞行安全是民航运输业赖以生存和发展的基础。随着我国民航业的快速发展,针对飞行安全问题的研究显得越来越重要。2022 年 3 月 21 日,“3.21”空难的发生…

[CSS]使用方式+样式属性

层叠样式表(Cascading Style Sheets),与HTML一样,也是一种标记语言,其作用就是给HTML页面标签添加各种样式,定义网页的显示效果,将网页内容和显示样式进行分离,提高了显示功能。简单…

Jenkins使用-绑定域控与用户授权

一、Jenkins安装完成后,企业中使用,首先需要绑定域控以方便管理。 操作方法: 1、备份配置文件,防止域控绑定错误或授权策略选择不对,造成没办法登录,或登录后没有权限操作。 [roottest jenkins]# mkdir ba…

K8s 命令行工具

文章目录 K8s 命令行工具kubectl 工具在任意节点使用kubectl方式创建对象命令显示和查找资源更新资源修补资源编辑资源Scale 资源删除资源查看pod信息节点相关操作 K8s 命令行工具 在搭建集群的时候,我们通过yum 下载了kubeadm kubelet kubectl 三个命令行工具&…

华为云配置安全组策略开放端口

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C 🔥座右铭:“不要等到什么都没有了,才下…

这家动画公司,女神表情灵动秒杀90%的国漫女角色!

当3D国漫市场逐渐加入“内卷”的行列,从大的底层创作引擎UE的运用迭代,到细节的人物动捕、面捕技术的实际结合,在这场内卷的百舸争流中,涌现出一家家风格各异的头部国漫制作公司:有整体偏写实风格的原力动画&#xff0…

多媒体互动装置如何助力智慧城市展厅的信息化建设?

随着现代化科技技术的发展,智慧城市的建设概念与实施也日益成熟,其中智慧城市展厅便是用于展示智慧城市理念、技术和规划的重要平台,而应用在其中的多媒体互动装置,更是起着重要的作用,它们能够让观众更直观地了解和体…

AI识别技术详解 --在windows环境中部署基于YOLO v8模型的目标检测

首先 YOLO是一个端到端的目标检测算法,一次前向传播计算,实现图像的多目标检测任务,我么可以在ultralytics官网上查看YOLO的各个版本(v1-v8)以及源码 使用YOLO v8提供的python接口,训练一个佩戴安全帽的目标…

关于Unity使用DLL的说法

最近在研究一些构建依赖相关的,特别是Unity在不同平台上使用第三方类库时候的问题。简单查了一下资料,其实不难理解,这里只是简单的记录一下,弄明白一个简单的道理就行了。 为什么有的第三方库(DoTween),NewtonSoft等的dll库&…

数组算法——查询位置

需求 思路 使用二分查找找到第一个值,以第一个值作为界限,分为左右两个区间在左右两个区间分别使用二分查找找左边的7,:找到中间位置的7之后,将中间位置的7作为结束位置,依次循环查找,知道start>end,返回…

uniapp小程序中使用video视频播放卡顿

问题:在使用uniapp小程序的video视频播放,视频已经在播放了,但是进度条没走,还是卡顿的状态(测试ios能正常使用,安卓手机会出现此问题) 在网上找了很多方法,最多的说是用:custom-cache"false",试了并没有效果,看来和我问题不一样,后来用了个简单粗暴的方法,发现是有效…

超标量处理器设计:两位饱和计数器基于局部历史的分支预测

★ 继续学习体系结构的知识。 1. 什么是分支预测 程序中有一种叫做分支指令的指令,如果在取指令阶段就可以预知本周期所取指令中是否存在分支指令,并且知道其方向(跳转/不跳转)以及目标地址,就可以从在下个周期从分支…

一文读懂Java中的WebEndpointProperties类(附Demo)

目录 前言1. 基本知识2. Demo3. 彩蛋 前言 对于Java的相关知识,推荐阅读:java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全) 1. 基本知识 Spring Boot 的配置类 WebEndpointProperties,用于配置 Web 端…

为什么市面上的数藏都长得很像?

为什么市面上的数藏都长得很像 一、NFT数藏的市场前景和概念二、目前市面上的数藏类型(九类)1. 头像类(PFP)2. 游戏类3. 艺术品/文物类4. 音乐类5. 影视类6. 演出类7. 门票类8. 体育类9. 品牌实物联名 三、各大数藏的相同点&#…

(弟)递归•斐波那契数、n的k次方

这里是目录哦 题目一:递归计算斐波那契数斐波那契数的定义代码运行截图递归过程递归停止条件(1个参数)✨非递归实现方法 题目二:递归实现n的k次方代码运行截图递归过程递归停止条件(不止1个参数)✨ 加油&am…

Java 中文官方教程 2022 版(四十九)

原文:docs.oracle.com/javase/tutorial/reallybigindex.html JAXB 示例 原文:docs.oracle.com/javase/tutorial/jaxb/intro/examples.html 以下部分描述如何使用包含在 JAXB RI 捆绑包中的示例应用程序。JAXB RI 捆绑包可从jaxb.java.net获取。下载并安装…

4月全新热文高科技,套用模板一键生成热文,没脑子拷贝,第二天出盈利

撰写热门文章,如今日头条或微信公众号文章,通常需要多长时间呢?从构思主题、搜集资料,到撰写成文,整个过程至少需要1小时,有时甚至可能需要2小时。 项目 地 址:laoa1.cn/1627.html 现在&…