首页 > 其他分享 >HarmonyOS NEXT 学习笔记3--登录页面(数据绑定)

HarmonyOS NEXT 学习笔记3--登录页面(数据绑定)

时间:2024-07-14 15:44:55浏览次数:8  
标签:username width -- text value NEXT HarmonyOS promptAction password

1.代码:

import { promptAction } from '@kit.ArkUI'

@Entry
@Component
struct Page_textInput_onchange {
  // @State UI刷新测试 [注意:不是双向绑定]
  username: string = ''
  password: string = ''

  build() {
    Column({ space: 20 }) {

      TextInput({ placeholder: '账号信息', text: this.username })// 这个text是把页面的值绑定给username
        .width('80%')
        .onChange((value) => {
          // 事件产生的UI更新,不会同步给数据,需要手动赋值
          // ①收集数据 this.username
          this.username = value
          promptAction.showToast({
            message: this.username
          })
        })
      // Text(this.username)//这叫UI刷新
      TextInput({ placeholder: '密码', text: this.password })
        .width('80%')
        .onChange((value)=>{  //把值传给password
          this.password = value
        })

      Button('登录')
        .width('80%')
        .onClick(() => {
          // ②使用数据 this.username
          if (this.username === 'admin' && this.password === '123456') {
            promptAction.showDialog({
              message: '登录成功!'
            })
          } else {
            promptAction.showDialog({
              message: '登录失败!'
            })
          }
        })
    }
    .width('100%')
    .height('100%')
    .padding(20)

  }
}

2.效果:

 

3.优化

import { promptAction } from '@kit.ArkUI'

@Entry
@Component
struct Page_textInput_onchange {
  // @State UI刷新测试 [注意:不是双向绑定]
  username: string = ''
  password: string = ''

  // 写法2 抽离这个函数
  login() {

    if (this.username === 'admin' && this.password === '123456') {
      promptAction.showDialog({
        message: '登录成功!'
      })
    } else {
      promptAction.showDialog({
        message: '登录失败!'
      })
    }
  }

  build() {
    Column({ space: 20 }) {

      TextInput({ placeholder: '账号信息', text: this.username })// 这个text是把页面的值绑定给username
        .width('80%')
        .onChange((value) => {
          // 事件产生的UI更新,不会同步给数据,需要手动赋值
          // ①收集数据 this.username
          this.username = value
          promptAction.showToast({
            message: this.username
          })
        })
      // Text(this.username)//这叫UI刷新
      TextInput({ placeholder: '密码', text: this.password })
        .width('80%')
        .onChange((value) => { //把值传给password
          this.password = value
        })

      Button('登录')
        .width('80%')
        .onClick(() => {
          this.login()

        })
    }
    .width('100%')
    .height('100%')
    .padding(20)

  }
}

4.优化示意:

 

标签:username,width,--,text,value,NEXT,HarmonyOS,promptAction,password
From: https://www.cnblogs.com/liqi175/p/18301621

相关文章

  • Java中的Fork/Join框架详解
    Java中的Fork/Join框架详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java中,Fork/Join框架是一种用于并行处理任务的强大工具,特别适用于那些可以递归地分解成更小任务的场景。Fork/Join框架基于“工作窃取”算法,允许空闲的线程从那些繁忙的线程那......
  • 使用Spring Boot集成Nacos
    使用SpringBoot集成Nacos大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代微服务架构中,服务发现和配置管理是两个非常重要的组成部分。Nacos作为阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台,非常适合用来管理SpringBoot微服务应用。本......
  • 使用Spring Boot实现数据脱敏
    使用SpringBoot实现数据脱敏大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代信息系统中,数据安全和隐私保护变得越来越重要。数据脱敏是一种有效保护敏感信息的技术,通过对数据进行遮掩或变形,使其在不影响使用的前提下失去敏感性。本文将介绍如何在S......
  • Java中的CompletableFuture详解
    Java中的CompletableFuture详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代Java编程中,异步编程变得越来越重要。Java8引入了CompletableFuture,它极大地简化了异步编程的复杂性。CompletableFuture不仅支持异步操作,还提供了丰富的API来处理异步......
  • Java中的ReentrantLock详解
    Java中的ReentrantLock详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java编程中,多线程同步是一个常见的需求。为了保证多个线程对共享资源的安全访问,Java提供了多种锁机制,其中ReentrantLock是一个重要的工具。本文将详细介绍ReentrantLock的使用,......
  • base64 数据转png本地图片保存,js实现
    要将base64编码的图像数据保存为PNG文件到本地,可以借助JavaScript和浏览器的FileAPI。以下是一个简单的步骤和示例代码:步骤:解析Base64数据:将Base64编码的字符串解析为二进制数据。创建Blob对象:使用解析后的二进制数据创建一个Blob对象。创建URL:通过UR......
  • 使用Spring Boot集成SkyWalking监控
    使用SpringBoot集成SkyWalking监控大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在微服务架构中,监控和追踪系统的运行状况至关重要。ApacheSkyWalking是一款强大的APM(应用性能监控)工具,能够帮助我们实时监控和分析微服务的性能。本文将介绍如何在Spri......
  • lib与dll(静态库与动态库)
    在计算机软件开发中,lib和dll是两种不同的库文件类型,用于代码共享和模块化。以下是它们的详细解释:静态库(StaticLibrary-.lib)特点文件扩展名:通常为.lib(在Windows上)或.a(在Unix/Linux系统上)。编译时间链接:静态库在编译时被直接链接到目标应用程序中。这意味着在......
  • 深入理解Java中的反射机制
    深入理解Java中的反射机制大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java开发中,反射机制是一种非常强大的工具,它允许程序在运行时检查和操作类、方法、字段等。反射机制不仅在框架开发中有着广泛的应用,而且在某些动态需求场景中也是必不可少的。本......
  • 在任何系统下使用公网ARL灯塔(免搭建)
    你是否还因没vps上的ARL灯塔而烦恼?那就试试这个脚本fofa:title='资产灯塔系统''''抓ARL灯塔'''importrequestsfromrequests.packages.urllib3.exceptionsimportInsecureRequestWarningimportthreadingresult=[]requests.packages.urllib3.disable_......