HarmonyOS自学-Day3(做个登录功能小案例)

news2024/12/23 5:03:57

目录

  • 文章声明⭐⭐⭐
  • 让我们开始今天的学习吧!
    • 登录功能小案例


文章声明⭐⭐⭐

  1. 该文章为我(有编程语言基础,非编程小白)的 HarmonyOS自学笔记,此类文章笔记我会默认大家都学过前端相关的知识
  2. 知识来源为 HarmonyOS官方文档,归纳为自己的语言与理解记录于此
  3. 不出意外的话,我大抵会 持续更新
  4. 想要了解前端开发(技术栈大致有:Vue2/3、微信小程序、uniapp、HarmonyOS、NodeJS、Typescript)与Python的小伙伴,可以关注我!谢谢大家!

让我们开始今天的学习吧!

登录功能小案例

样式大致如下:
在这里插入图片描述
需求为:

  • 实时显示用户输入的用户名和密码
  • 使用 @Builder 来封装一行提示标签与输入框
  • 点击登录即输出用户名与密码
  • 点击重置则清空用户名和密码

代码如下:

@Entry
@Component
struct Index {
  // 输入框前的提示
  userLabel:string = '用户名';
  passwordLabel:string = '密码';
  // 用户名和密码的状态变量
  @State userName:string = '';
  @State password:string = '';
  // 输入框为了实现双向绑定而创建的回调函数
  inputCallBack=(labelName:string,newValue:string)=>{
    if (labelName === this.userLabel) {
      this.userName = newValue;
    } else {
      this.password = newValue;
    }
  }
  build() {
    Row() {
      Column() {
        inputLabel({labelName:this.userLabel,value:this.userName,callBack:this.inputCallBack})
        inputLabel({labelName:this.passwordLabel,value:this.password,callBack:this.inputCallBack})
        Row(){
          Button('登录')
            .margin({right:30})
            .onClick(()=>{
              // 输出用户名和密码
              console.log(this.userName);
              console.log(this.password);
            })
          Button('重置')
            .onClick(()=>{
              // 清空用户名和密码
              this.userName = '';
              this.password = '';
            })
        }
      }
      .width('100%')
    }
    .height('100%')
  }
}

// 组件构建函数
@Builder function  inputLabel($$:{labelName:string,value:string,callBack:(labelName,newValue)=>void}){
  Row() {
    // 输入框前的提示
    Text($$.labelName)
      .fontSize(30)
      .margin({ right: 20 })
    TextInput({text:$$.value})
      .width(200)
      .onChange((newValue:string)=>{
        // 因为不可以直接更改父组件状态变量的值,所以选择将新的值回调给父组件让其自行更改
        $$.callBack($$.labelName,newValue)
      })
  }
  .margin({ bottom: 10 })

  Divider()
    .margin({bottom:10})
}

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

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

相关文章

信息管理就业方向之产品经理

学长分享自己确定互联网产品经理的工作方向以及产品经理的相关工作情况。 互联网领域产品经理是对一个软件或者平台产品的运维和设计。比如网上订机票业务,需要根据筛选用户的需求,确定要实现的某个需求,然后画出原型图,流程图等…

blender mix节点和它的混合模式

Mix 节点是一种用于混合两个颜色或者两个图像的节点,它有以下几个输入和输出: Color1:用于接收第一个颜色或者图像,也就是基色。Color2:用于接收第二个颜色或者图像,也就是混合色。Fac:用于控制…

一个计算机视觉从业者2023回顾

作为一个计算机视觉从业者,我非常认同上面所列的技术发展规划。在计算机视觉领域,我认为要实现这些规划,需要注重以下几个方面的发展和预测: 深入学习新技术:计算机视觉领域的技术发展非常迅速,不断涌现出新…

原生与封装Ajax

Ajax 一.Ajax概述 1.应用场景 在线视频、直播平台等…评论实时更新、点赞、小礼物、…会员注册时的信息验证,手机号、账号唯一百度关键搜索补全功能 2.简介 Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML)&#x…

全面分析解决mfc110u.dll丢失的5种方法,简单三步即可搞定

在计算机使用过程中,我们可能会遇到一些错误提示,其中“找不到mfc110u.dll”是常见的一种。mfc110u.dll是Microsoft Foundation Class(MFC)库中的一个动态链接库文件,它提供了许多用于开发Windows应用程序的函数和类。…

Win7/Win10/Win11系统优点缺点

Windows7优点: 熟悉的用户界面:Windows 7具有传统的用户界面,对于习惯了Windows XP或Windows Vista的用户来说很容易上手。 稳定性高:Windows 7在稳定性方面表现良好,大多数用户都能够获得可靠的性能和运行体验。 兼容…

分库分表之Mycat应用学习二

3 Mycat 概念与配置 官网 http://www.mycat.io/ Mycat 概要介绍 https://github.com/MyCATApache/Mycat-Server 入门指南 https://github.com/MyCATApache/Mycat-doc/tree/master/%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%973.1 Mycat 介绍与核心概念 3.1.1 基本介绍 历史&#x…

AI绘图之风景画

这一段时间AI画图比较火,笔者也尝试了一些工具,在使用的过程中发现midjourney比较适合小白,而且画的画比较符合要求。质量也高。当然AI时代的来临大家也不要太慌,毕竟人才是最重要的,AI还是要靠人输入内容才可以生成内…

【继承多态】

#include <iostream> #include <string>int monster 10000; // 全局变量class Hero { protected:std::string name;int hp;int attack;public:// 公有的无参构造函数Hero() : hp(100), attack(10) {}// 公有的有参构造函数Hero(const std::string& n, int h,…

【后端已完成,前端更新ing】uniapp+springboot实现个人备忘录系统【前后端分离】

目录 &#xff08;1&#xff09;项目可行性分析 &#xff08;一&#xff09;技术可行性&#xff1a; &#xff08;二&#xff09;经济可行性&#xff1a; &#xff08;三&#xff09;社会可行性&#xff1a; &#xff08;2&#xff09;需求描述 功能模块图 用例图&#…

谷歌推出了一种名为提示扩展(Prompt Expansion)的创新框架,旨在帮助用户更轻松地创造出既高质量又多样化的图像。

谷歌推出了一种名为提示扩展&#xff08;Prompt Expansion&#xff09;的创新框架&#xff0c;旨在帮助用户更轻松地创造出既高质量又多样化的图像。 论文标题: Prompt Expansion for Adaptive Text-to-Image Generation 论文链接: https://arxiv.org/pdf/2312.16720.pdf 问…

iCloud 备份 如何删除?

文章目录 Intro操作效果 浏览器端触发手机操作 Intro 前几天重置手机系统&#xff0c;不小心向 iCloud 推送了手机备份。 可是我用的是不需要这份备份&#xff0c;想要删除&#xff0c;可是常规入口找不到删除icloud中备份的按钮。 需要如下设备&#xff1a; 一台iphone &am…

新网域名外部入库流程

注册商是新网&#xff0c;且在新网管理的&#xff0c;请使用此教程外部入库。 如您的域名注册商是新网但在聚名管理&#xff0c;请参考教程&#xff1a;https://www.west.cn/faq/list.asp?unid2539 在外部入库操作之前&#xff0c;请先登录新网获取用户ID和绑定邮箱信息。…

CodeWave智能开发平台--02--目标:文档快速阅读

CodeWave智能开发平台的02次接触-实现快速了解CodeWave平台 CodeWave参考资源 网易数帆CodeWave开发者社区课程中心 网易数帆CodeWave开发者社区文档中心 CodeWave智能开发平台-文档快速阅读指北 大家如果看了本专栏中的第一篇博客&#xff0c;应该知道我接触CodeWave不久&a…

在vscode中创建任务编译module源文件

接昨天的文章 [创建并使用自己的C模块&#xff08;Windows10MSVC&#xff09;-CSDN博客]&#xff0c;觉得每次编译转到命令行下paste命令过于麻烦&#xff0c;于是研究了一下在vscode中创建自动编译任务。 经过尝试&#xff0c;在task.json中增加如下代码&#xff1a; {"…

ALSA学习(5)——ASoC架构中的Machine

参考博客&#xff1a;https://blog.csdn.net/DroidPhone/article/details/7231605 &#xff08;以下内容皆为原博客转载&#xff09; 文章目录 一、注册Platform Device二、注册Platform Driver三、初始化入口soc_probe() 一、注册Platform Device ASoC把声卡注册为Platform …

大发汽车紧急关闭日本4家工厂,停工时间延长至明年1月|百能云芯

大发汽车近期的生产线关闭引起了广泛关注&#xff0c;丰田汽车旗下的大发汽车公司因为不当测试和资料造假问题而被迫采取了紧急措施&#xff0c;关闭了其在日本的全部4家工厂的生产线。这一决定不仅对大发汽车本身产生潜在影响&#xff0c;还牵涉到数千家汽车零部件制造商及其员…

51单片机项目(26)——基于51单片机的超声波测距protues仿真

1.功能设计 用51单片机做的超声波测距系统&#xff0c;用的传感器是HCSR04&#xff0c;将距离实时显示在LCD1602屏幕上&#xff01;&#xff01;内含keil工程 完整的protues文件 可以运行&#xff01;&#xff01;&#xff01; 仿真截图&#xff1a;&#xff08;有一丢丢的误差…

【RocketMQ每日一问】RocketMQ5.0POP消费模式如何实现的?

1 什么是 Pop 消费 RocketMQ 5.0 中引入了一种新的消费模式&#xff1a;Pop 消费模式。 我们知道 RocketMQ 原来有两种消费模式&#xff1a;Pull 模式消费和 Push 模式消费&#xff0c;其中 Push 模式指的是 Broker 将消息主动“推送”给消费者&#xff0c;它的背后其实是消费…

【Java进阶篇】字符串常量、字符串常量池详解

字符串常量、字符串常量池详解 ✔️字符串常量池是如何实现的?✔️字符串常量从哪来的? ✔️字符串常量是什么时候进入到字符串常量池的? ✔️字符串常量池是如何实现的? 字符串常量池 (String Constant Pool) 是Java中一块特殊的内存区域&#xff0c;用于存储字符串常量。…