【HarmonyOS NEXT星河版开发学习】小型测试案例11-购物车数字框

news2024/11/15 19:46:09

个人主页→VON

收录专栏→鸿蒙开发小型案例总结​​​​​

基础语法部分会发布于github 和 gitee上面(暂未发布)

 

前言

经过一周的学习,我发现还是进行拆分讲解效果会比较好,因为鸿蒙和前端十分的相识。主要就是表达的方式不同罢了。我希望以这种方式讲解能够帮助到大家。

页面讲解

数量减少样式

数字以及加号效果展示 

 数字默认为5

 鼠标单击减号,数字会进行自减操作

 

因为是购物车中的数量,所以不能是负数

当数量减到0时,再减会弹出一个提示

 

鼠标单击加号的时候可以一直加 

 

知识点概述 

鸿蒙开发中的条件语句主要通过ArkTS语言实现,支持if、else和else if语句用于条件渲染。在鸿蒙应用开发中,条件语句的使用是基本且必不可少的编程构造之一。它们在处理逻辑判断、动态内容渲染以及交互反馈中起到了关键作用。鸿蒙系统利用ArkTS(一种基于TypeScript的超集)作为其主要的开发语言,它允许开发者使用声明式UI进行高效编码。

从条件渲染的角度考虑

ArkTS允许开发者根据不同的应用状态,利用if、else和else if语句来渲染对应的UI内容。这些控制结构使得开发者能够构建出动态响应用户互动和状态变化的界面。例如,一个典型的用例是根据用户的登录状态来显示或隐藏某些组件,或者根据某个条件的变化来切换不同组件的显示。

关于条件语句的更新机制

当if或else if后跟随的状态判断中使用的状态变量值发生变化时,条件渲染语句会重新评估这些条件,并相应地更新UI组件。具体来说,如果分支有变化,ArkUI框架将删除所有以前渲染的组件,并执行新分支的构造函数,将生成的子组件添加到父容器中。这个过程为应用提供了高度的动态性和响应性,确保用户界面与应用状态同步。

@State装饰器

除了基本的使用方法,条件语句还可以结合ArkTS的装饰器(如@State)使用,以管理组件内部的状态。这种用法使得组件能够在状态变更时保持类型安全和高效的状态管理。比如,一个组件可能包含一个标记显示状态的布尔值@State isShow,并通过条件语句基于这个状态值决定是否展示某个界面元素。

鸿蒙开发中的条件语句不仅是实现代码逻辑控制的基石,还是实现复杂用户界面交互和动态内容呈现的关键工具。通过合理运用if、else和else if语句,结合ArkTS语言的强大功能和鸿蒙平台提供的丰富组件库,开发者可以构建出流畅、响应迅速且用户体验优异的应用程序。随着鸿蒙系统的不断成熟和生态系统的扩展,掌握这些基础开发技能对于任何希望在鸿蒙平台上构建应用的开发者来说都是至关重要的。

代码展示

@Entry
@Component
struct Index {
  @State
  num:number=5
  build() {
    // 需求:
    // 购物车商品数量大于1可以单击‘-’按钮
    // 否则提示‘最小数量为1,不能再减了’
    Column(){
      Row(){
        Text('-')
          .width(40)
          .height(40)
          .border({width:2,color:'#999',radius:{topLeft:3,topRight:3}})
          .textAlign(TextAlign.Center)
          .onClick(()=>{
            if(this.num>=1){
              this.num--
            }
            else{
              AlertDialog.show({
                message:'最小值为1,不能再减了'
              })
            }
          })
        Text(this.num.toString())
          .width(40)
          .height(40)
          .border({width:{top:2,bottom:2},color:'#999'})
          .textAlign(TextAlign.Center)
        Text('+')
          .width(40)
          .height(40)
          .border({width:2,color:'#999',radius:{topLeft:3,topRight:3}})
          .textAlign(TextAlign.Center)
          .onClick(()=>{
            this.num++
          })
      }
    }
    .padding(20)
  }
}

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

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

相关文章

2024年高教社杯全国大学生数学建模竞赛报名第一次通知!建议收藏!预测类模型及应用场景汇总

对于数学建模而言,算法模型选的对,文章写的顺~其中预测类模型是数模中常用的模型之一,通过预测模型,我们可以对未来的趋势和事件进行合理推测。今天,数模0error给大家汇总一下预测类模型及其应用场景,供大家参考,小伙伴们码住! 2024年高教社杯全大学生数学建模竞赛通知…

docker学习初体验

docker学习初体验 docker是什么 docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 roo…

四款口碑比较好充电宝排名,哪些性价比高?适合入手充电宝推荐

2024年快到下旬了,市场上的充电宝价格也是差不多都沉淀起来了。所以就性价比高的充电宝的入手时间来说,那确实是年底左右的时间挑选入手会比较好一点。而挑选性价比高的充电宝类型呢,那说充电宝,我个人其实也有入手过不少品牌的充…

晶体振荡器的频率容差与温度稳定性

晶体振荡器作为电子设备中不可或缺的频率源,其频率的准确性与稳定性至关重要。本文旨在阐述晶体振荡器的频率容差与温度稳定性的定义、测量单位及其在实际应用中的重要性。 一、频率容差定义及测量单位 频率容差是指晶体振荡器在特定条件下(通常是25C的…

mysql 监控开始时间,结束时间,平均取n个时间点

需求 最近1小时 1分钟 60个点 最近3小时 5分钟 36个点 最近6小时 10分钟 36个点 最近12小时 20分钟 36个点 最近1天 1小时 24个点 最近3天 3小时 24个点 最近1周 6小时 28个点 如果你的递归查询支持递归CTE(如MySQL 8.0),可以使用递归查询来…

[自学记录09*]关于模糊效果降采样优化性能的小实验

一、降采样在模糊中的优化 这两天接手了几个高度定制化的模糊,包括不限于放射和旋转状的径向模糊,移轴模糊,景深的散景模糊等等,这些效果在游戏中非常常见。 其实模糊的原理都差不多,无非就是对UV偏移后重新采样再求…

UI动画设计:提升用户体验的关键

传统的静态 UI 设计正在逐渐被淘汰,UI 动画设计正在脱颖而出。随着技术的成熟,UI 动画正试图超越现有的限制和规则,并通过应用程序形成、网站和其他产品的新互动模式。交互式动画也可以为 UI 设计增添活力,使用户界面更加丰富多彩…

【vue3|第20期】vue3中Vue Router路由器工作模式

日期:2024年8月6日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#xff…

ThreadLocal 详解(三)内存泄露原因,以及强弱引用

1、ThreadLocal内存泄漏 在Threadlocal的内部静态类中Entry将Threadlocal作为一个key,值作为value保存,他继承WeakReference,super(k),代表了Threadlocal对象是一个弱引用; static class Entry extends WeakReference…

mysql中B+树的数据存储

B树索引基础分析 B树的定义 B树是一种自平衡的树形数据结构,常用于数据库和操作系统的索引结构。它具有以下特点: 所有数据都存储在叶子节点,非叶子节点仅存储键值和子节点的指针。 叶子节点之间通过指针相互连接,形成一个有序链…

机器视觉应用基础: 工业镜头

文章转载自机器视觉应用基础: 工业镜头-工业相机镜头选型-少有人走的路 (skcircle.com) 工业镜头相当于人眼的晶状体,如果没有晶状体,人眼看不到任何物体;如果没 有镜头,那么摄像头所输出的图像;就是白茫茫的一片&…

职场办公人必备网站-办公人导航

“办公人导航”是一个综合性的网址导航网站,专门收录和分享各种优质的办公资源和工具。它涵盖了常用网站、在线工具、资源查找、素材查找、在线学习、在线影视、资讯信息、AI工具集等内容,是一个职场办公人必备的网址导航网站。办公人导航-实用的办公生活…

XJTUSE-离散数学-集合

基本概念 集合的包含与相等&#xff0c;如子集幂集&#xff1a;以A的所有子集组成的集合称为A的幂集AB <> 集合的基本运算 基本运算证明会考 交运算并运算补运算差运算&#xff1a;A \ B 环和运算&#xff1a;环积运算&#xff1a; 集合的其他表示方法 文图表示法 …

反向传播与梯度累积

反向传播算法&#xff1a;loss.backward()的实现细节 向前传播&#xff1a;输入数据得到预测结果。向后传播&#xff1a;计算梯度加更新参数。反向传播&#xff1a;计算梯度 计算图 计算图 有向无环图 基本运算 节点&#xff1a;变量节点 & 计算节点有向边&#xff1…

AI赋能医疗:应用场景丰富,智慧医疗进入大趋势!

在《超越想象的 GPT 医疗》一书开篇中描绘了一个虚构场景&#xff1a;面对患者病情突然恶化&#xff0c;医学住院实习生克里斯腾陈通过和 GPT-4 对话&#xff0c;完成了对患者的救治、得到了心理安慰、并为患者向保险公司申请了授权&#xff0c;后续在查房中&#xff0c;还为肿…

【MySQL】数据基本的增删改查操作

新增数据&#xff08;Create&#xff09; 在MySQL中&#xff0c;增加数据的操作主要使用 INSERT 语句。下面我们将分为两部分&#xff1a;单行数据插入和多行数据插入。 一、单行数据插入 全列插入&#xff1a; 当你要插入一行数据到表中并且要提供所有列的值时&#xff0c;可…

工业互联网产教融合实训基地解决方案

一、引言 随着“中国制造2025”战略的深入实施与全球工业4.0浪潮的兴起&#xff0c;工业互联网作为新一代信息技术与制造业深度融合的产物&#xff0c;正引领着制造业向智能化、网络化、服务化转型。为培养适应未来工业发展需求的高素质技术技能人才&#xff0c;构建工业互联网…

较新版本Cesium使用本地源码编译打包

0 写作背景 较新版本的Cesium&#xff08;1.100版本及以后&#xff09;在代码结构上做了一定的调整&#xff0c;打包方式也随之发生了一些变化。 Starting with version 1.100, CesiumJS will be published alongside two smaller packages cesium/engine and cesium/widgets …

JAVA中的volatile和synchronized关键字详解

1.volatile 保证可见性&#xff1a;当一个变量被声明为volatile&#xff0c;编译器和运行时都会注意到这个变量是共享的&#xff0c;并且每次使用这个变量时都必须从主内存中读取&#xff0c;而不是从线程的本地缓存或者寄存器中读取。这确保了所有线程看到的变量值都是最新的…

【数据结构】树型结构详解 + 堆的实现(c语言)(附源码)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;数据结构 目录 前言 一、树 1.树的概念与结构 2.树的相关术语 3.树的表示方法 4.树型结构的实际应用场景 二、二叉树 1.二叉树的概念与结构 2.二叉树的…